Individual glacier analysis 1

This notebook will walk you through steps to read in and organize velocity data and clip it to the extent of a single glacier. The tools we will use include xarray, rioxarray and geopandas.

To clip its_live data to the extent of a single glacier we will use a vector dataset of glacier outlines, the Randolph Glacier Inventory. These aren’t cloud-hosted currently so you will need to download the data to your local machine.

Learning goals come back and finish these, feel like this notebook has alot, is pretty disorganized..
using xarray to read zarr data from s3 bucket

  • rio.clip() to clip raster by vector

  • viewing CRS, reprojecting and writing CRS data for various objects

  • dataset.where()

  • dataset.sel() using multiple conditions

  • groupby

First, lets install the python libraries that were listed on the Software page:

import geopandas as gpd
import os
import numpy as np
import xarray as xr
import rioxarray as rxr
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
from shapely.geometry import Polygon
from shapely.geometry import Point
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import cartopy
import cartopy.feature as cfeature
import json
import urllib.request
from skimage.morphology import skeletonize
import pandas as pd
import seaborn as sns 
from matplotlib import pyplot as plt
%config InlineBackend.figure_format='retina'

Reading in ITS_LIVE data

We will use some of the functions we defiend in the data access notebook to read in data here.

import itslivetools

First, let’s read in the catalog again:

with urllib.request.urlopen('https://its-live-data.s3.amazonaws.com/datacubes/catalog_v02.json') as url_catalog:
    itslive_catalog = json.loads(url_catalog.read().decode())
itslive_catalog.keys()
dict_keys(['type', 'features'])

Take a look at a single catalog entry:

Use the function below to find the url that corresponds to the zarr datacube for a specific point:

The read_in_s3() function will read in a xarray dataset from a url to a zarr datacube when we’re ready:

I started with chunk_size='auto' but ran into issues. more about choosing good chunk sizes here.

url = itslivetools.find_granule_by_point(itslive_catalog, [84.56, 28.54])
url
['http://its-live-data.s3.amazonaws.com/datacubes/v02/N20E080/ITS_LIVE_vel_EPSG32645_G0120_X250000_Y3150000.zarr']
dc = itslivetools.read_in_s3(url[0])
dc
<xarray.Dataset>
Dimensions:                    (mid_date: 20549, y: 833, x: 833)
Coordinates:
  * mid_date                   (mid_date) datetime64[ns] 2020-02-07T17:10:52....
  * x                          (x) float64 2.001e+05 2.002e+05 ... 2.999e+05
  * y                          (y) float64 3.2e+06 3.2e+06 ... 3.1e+06 3.1e+06
Data variables: (12/54)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(20549,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(20549, 40, 40), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(20549, 40, 40), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...

We are reading this in as a dask array. Let’s take a look at the chunk sizes:

NOTE: chunksizes shows the largest chunk size. chunks shows the sizes of all chunks along all dims, better if you have irregular chunks

dc.chunksizes
Frozen({'mid_date': (20549,), 'y': (40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 33), 'x': (40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 33)})
dc.chunks
Frozen({'mid_date': (20549,), 'y': (40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 33), 'x': (40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 33)})

Setting the dask chunksize to auto at the xr.open_dataset() step will use chunk sizes that most closely resemble the structure of the underlying data. To avoid imposing a chunk size that isn’t a good fit for the data, avoid re-chunking until we have selected a subset of our area of interest from the larger dataset

Check CRS of xr object:

dc.mapping
<xarray.DataArray 'mapping' ()>
array('', dtype='<U1')
Attributes:
    CoordinateAxisTypes:      GeoX GeoY
    CoordinateTransformType:  Projection
    GeoTransform:             200032.5 120.0 0 3199927.5 0 -120.0
    grid_mapping_name:        universal_transverse_mercator
    inverse_flattening:       298.257223563
    semi_major_axis:          6378137.0
    spatial_epsg:             32645
    spatial_proj4:            +proj=utm +zone=45 +datum=WGS84 +units=m +no_defs
    spatial_ref:              PROJCS["WGS 84 / UTM zone 45N",GEOGCS["WGS 84",...
    utm_zone_number:          45.0

Let’s take a look at the time dimension (mid_date here). To start with we’ll just print the first 10 values:

for element in range(10):
    
    print(dc.mid_date[element].data)
2020-02-07T17:10:52.528083968
2021-11-11T05:10:40.529083904
2015-03-18T00:19:03.524224768
2019-10-10T17:13:32.528083968
2016-07-15T05:06:36.529083904
2021-08-10T17:10:34.529083904
2021-04-15T00:19:35.894403072
2018-06-27T17:09:39.528083968
2019-12-22T05:10:48.528083968
2020-07-29T05:10:51.528083968

Weird, it doesn’t look like the time dimension is in chronological order, let’s fix that:

dc_timesorted = dc.sortby(dc['mid_date'])
dc_timesorted
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/xarray/core/indexing.py:1228: PerformanceWarning: Slicing is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array[indexer]

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array[indexer]
  return self.array[key]
<xarray.Dataset>
Dimensions:                    (mid_date: 20549, y: 833, x: 833)
Coordinates:
  * mid_date                   (mid_date) datetime64[ns] 2013-04-09T16:49:00....
  * x                          (x) float64 2.001e+05 2.002e+05 ... 2.999e+05
  * y                          (y) float64 3.2e+06 3.2e+06 ... 3.1e+06 3.1e+06
Data variables: (12/54)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(20549,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(20549, 40, 40), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(20549, 40, 40), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...

When we read in the zarr datacube as a xr.Dataset we set the chunk sizes to auto. When we try to sort along the mid_date dimension this seems to become a problem and we get the warning above.

At first it makes sens to follow the instructions in the warning message to avoid creating large chunks, but this creates some issues. If you want, turn the cell below to code and run it, you can see that this re-chunks the time dimension which isn’t something that we want

import dask
with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    dc_timesorted_false = dc.sortby(dc['mid_date'])
    dc_timesorted_false
dc_timesorted
<xarray.Dataset>
Dimensions:                    (mid_date: 20549, y: 833, x: 833)
Coordinates:
  * mid_date                   (mid_date) datetime64[ns] 2013-04-09T16:49:00....
  * x                          (x) float64 2.001e+05 2.002e+05 ... 2.999e+05
  * y                          (y) float64 3.2e+06 3.2e+06 ... 3.1e+06 3.1e+06
Data variables: (12/54)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(20549,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(20549, 40, 40), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(20549, 40, 40), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...
for element in range(10):
    
    print(dc_timesorted.mid_date[element].data)
2013-04-09T16:49:00.528084992
2013-04-23T04:55:55.528083968
2013-04-25T16:49:09.528084992
2013-05-01T04:56:02.028083968
2013-05-03T16:49:08.028084992
2013-05-09T04:56:00.528083968
2013-05-09T04:56:03.528083968
2013-05-10T04:49:51.028084992
2013-05-17T04:56:02.028083968
2013-05-18T04:49:49.528084992

Read in vector data

We are going to read in RGI region 15 (SouthAsiaEast). RGI data is downloaded in lat/lon coordinates. We will project it to match the CRS of the ITS_LIVE dataset and then select an individual glacier to begin our analysis.

se_asia = gpd.read_file('/Users/emarshall/Desktop/siparcs/data/nsidc0770_15.rgi60.SouthAsiaEast/15_rgi60_SouthAsiaEast.shp')
se_asia.head(3)
RGIId GLIMSId BgnDate EndDate CenLon CenLat O1Region O2Region Area Zmin ... Aspect Lmax Status Connect Form TermType Surging Linkages Name geometry
0 RGI60-15.00001 G102044E29941N 19990920 -9999999 102.044042 29.941000 15 3 0.438 4996 ... 251 850 0 0 0 0 9 9 None POLYGON ((102.03759 29.93828, 102.03759 29.938...
1 RGI60-15.00002 G102042E29987N 19990920 -9999999 102.042346 29.987019 15 3 0.644 4947 ... 244 1021 0 0 0 0 9 9 None POLYGON ((102.04195 29.99030, 102.04197 29.990...
2 RGI60-15.00003 G102041E29997N 19990920 -9999999 102.041130 29.997311 15 3 0.225 5019 ... 274 812 0 0 0 0 9 9 None POLYGON ((102.03710 29.99774, 102.03719 29.998...

3 rows × 23 columns

#project rgi data to match itslive
se_asia_prj = se_asia.to_crs('EPSG:32645') #we know the epsg from looking at the 'spatial epsg' attr of the mapping var of the dc object
se_asia_prj.head(3)
RGIId GLIMSId BgnDate EndDate CenLon CenLat O1Region O2Region Area Zmin ... Aspect Lmax Status Connect Form TermType Surging Linkages Name geometry
0 RGI60-15.00001 G102044E29941N 19990920 -9999999 102.044042 29.941000 15 3 0.438 4996 ... 251 850 0 0 0 0 9 9 None POLYGON ((1959630.570 3408951.748, 1959630.394...
1 RGI60-15.00002 G102042E29987N 19990920 -9999999 102.042346 29.987019 15 3 0.644 4947 ... 244 1021 0 0 0 0 9 9 None POLYGON ((1959271.126 3414873.173, 1959273.308...
2 RGI60-15.00003 G102041E29997N 19990920 -9999999 102.041130 29.997311 15 3 0.225 5019 ... 274 812 0 0 0 0 9 9 None POLYGON ((1958682.136 3415647.929, 1958684.710...

3 rows × 23 columns

Crop RGI to ITS_LIVE extent

  • use get_bbox_single() from access nb but no plotting (above)

#first, get vector bbox of itslive

bbox_dc = itslivetools.get_bbox_single(dc)
bbox_dc['geometry']
0    POLYGON ((83.95080 27.99167, 84.96524 28.01044...
Name: geometry, dtype: geometry
_images/ind_glacier_data_inspection_analysis_30_1.png
#project from latlon to local utm 
bbox_dc = bbox_dc.to_crs('EPSG:32645')
bbox_dc
geometry
0 POLYGON ((200092.500 3100027.500, 299932.500 3...
#subset rgi to bounds 
se_asia_subset = gpd.clip(se_asia_prj, bbox_dc)
se_asia_subset
se_asia_subset.explore()
Make this Notebook Trusted to load map: File -> Trust Notebook
sample_glacier_vec = se_asia_subset.loc[se_asia_subset['RGIId'] == 'RGI60-15.04714']
sample_glacier_vec
RGIId GLIMSId BgnDate EndDate CenLon CenLat O1Region O2Region Area Zmin ... Aspect Lmax Status Connect Form TermType Surging Linkages Name geometry
4713 RGI60-15.04714 G084393E28743N 20010929 -9999999 84.392609 28.743019 15 1 13.593 4481 ... 317 12292 0 0 0 0 9 9 None POLYGON ((242056.441 3181919.463, 242008.653 3...

1 rows × 23 columns

Clip ITS_LIVE dataset to individual glacier extent

First, we need to use rio.write_crs() to assign a CRS to the itslive object. If we don’t do that first the rio.clip() command will produce an error Note: it looks like you can only run write_crs() once, because it switches mapping from being a data_var to a coord so if you run it again it will produce a key error looking for a var that doesnt’ exist

dc_timesorted = dc_timesorted.rio.write_crs(f"epsg:{dc_timesorted.mapping.attrs['spatial_epsg']}", inplace=True)
%%time

sample_glacier_raster = dc_timesorted.rio.clip(sample_glacier_vec.geometry, sample_glacier_vec.crs)
CPU times: user 262 ms, sys: 6.66 ms, total: 269 ms
Wall time: 268 ms

Take a look at the clipped object:

sample_glacier_raster
<xarray.Dataset>
Dimensions:                    (mid_date: 20549, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2013-04-09T16:49:00....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/53)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(20549,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(20549, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(20549, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...

Let’s take a look at the clipped raster alongside the vector outline. To start with and for the sake of easy visualizing we will take the mean of the magnitude of velocity variable along the mid_date dimension:

fig, ax = plt.subplots(figsize = (15,9))
sample_glacier_vec.plot(ax=ax, facecolor='none', edgecolor='red');
sample_glacier_raster.v.mean(dim=['mid_date']).plot(ax=ax);
_images/ind_glacier_data_inspection_analysis_40_0.png

Now let’s take a look at the x and y components of velocity, again averaging over time:

fig, axs = plt.subplots(ncols =2, figsize=(17,7))

sample_glacier_raster.vx.mean(dim='mid_date').plot(ax=axs[0]);
sample_glacier_raster.vy.mean(dim='mid_date').plot(ax=axs[1]);
_images/ind_glacier_data_inspection_analysis_42_0.png
sample_glacier_raster.v_error.mean(dim=['mid_date']).plot();
_images/ind_glacier_data_inspection_analysis_43_0.png

Exploring ITS_LIVE data

ITS_LIVE data cubes come with many (53!) variables that carry information about the estimated surface velocities and the satellite images that were used to generate the surface velocity estimates. We won’t examine all of this information here but let’s look at a litte bit.

To start with, let’s look at the satellite imagery used to generate the velocity data.

We see that we have two data_vars that indicate which sensor that each image in the image pair at a certain time step comes from:

sample_glacier_raster.satellite_img1.data.compute()
array(['8.', '8.', '8.', ..., '2A', '2B', '2B'], dtype='<U2')
sample_glacier_raster.satellite_img2
<xarray.DataArray 'satellite_img2' (mid_date: 20549)>
dask.array<copy, shape=(20549,), dtype=<U2, chunksize=(20549,), chunktype=numpy.ndarray>
Coordinates:
    mapping   int64 0
  * mid_date  (mid_date) datetime64[ns] 2013-04-09T16:49:00.528084992 ... 202...
Attributes:
    description:    id of the satellite that acquired image 2
    standard_name:  image2_satellite

The satellite_img1 and satellite_img2 variables are 1-dimensional numpy arrays corresponding to the length of the mid_date dimension of the data cube. You can see that each element of the array is a string corresponding to a different satellite: 1A = Sentinel 1A, 1B = Sentinel 1B, 2A = Sentinel 2A 2B = Sentinel 2B, 8. = Landsat8 and 9. = Landsat9

Let’s re-arrange these string arrays into a format that is easier to work with.

First, we’ll make a set of all the different string values in the satellite image variables:

Examining velocity data from each satellite in ITS_LIVE dataset

What if we only wanted to look at the velocity estimates from landat8?

l8_data = sample_glacier_raster.where(sample_glacier_raster['satellite_img1'] == '8.', drop=True)
l8_data
<xarray.Dataset>
Dimensions:                    (mid_date: 7257, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2013-04-09T16:49:00....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/53)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(7257,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(7257,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) object dask.array<chunksize=(7257,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(7257, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(7257, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(7257,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...

dataset.where() at first seems appropriate to use for kind of operation but there’s actually an easier way. Because we are selecting along a single dimension (mid_date), we can use xarray’s .sel() method instead. This is more efficient and integrates with dask arrays more smoothly.

l8_condition = sample_glacier_raster.satellite_img1.isin('8.')
l8_subset = sample_glacier_raster.sel(mid_date=l8_condition)
l8_subset
<xarray.Dataset>
Dimensions:                    (mid_date: 7257, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2013-04-09T16:49:00....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/53)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(7257,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(7257,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(7257,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(7257, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(7257, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(7257,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(7257,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...

We can see that we are looking at roughly a third of the original time steps. Let’s take a look at the average speeds of the Landsat8-derived velocities:

l8_subset.v.mean(dim='mid_date').plot();
_images/ind_glacier_data_inspection_analysis_54_0.png

What about Landsat9?

l9_condition = sample_glacier_raster.satellite_img1.isin('9.')

l9_subset = sample_glacier_raster.sel(mid_date=l9_condition)
l9_subset
<xarray.Dataset>
Dimensions:                    (mid_date: 46, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2021-11-06T16:48:19....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/53)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(46,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(46,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(46,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(46, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(46, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(46,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(46,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(46,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(46,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(46,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(46,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(46,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...

Only 45 time steps have data from Landsat9, this makes sense because Landsat9 was just launched recently

l9_subset.v.mean(dim='mid_date').plot();
_images/ind_glacier_data_inspection_analysis_58_0.png

Let’s look at Sentinel 1 data. Note here we are selecting for 2 values instead of 1:

s1_condition = sample_glacier_raster.satellite_img1.isin(['1A','1B'])
s1_subset = sample_glacier_raster.sel(mid_date = s1_condition)
s1_subset
<xarray.Dataset>
Dimensions:                    (mid_date: 475, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2014-10-13T00:19:06....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/53)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(475,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(475,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(475,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(475, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(475, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(475,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(475,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(475,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(475,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(475,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(475,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(475,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...
s1_subset.v.mean(dim='mid_date').plot();
_images/ind_glacier_data_inspection_analysis_61_0.png
s2_condition = sample_glacier_raster.satellite_img1.isin(['2A','2B'])
s2_subset = sample_glacier_raster.sel(mid_date=s2_condition)
s2_subset
<xarray.Dataset>
Dimensions:                    (mid_date: 12771, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2016-02-26T05:07:11....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/53)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(12771,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(12771,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(12771,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(12771, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(12771, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(12771,), meta=np.ndarray>
    ...                         ...
    vy_error_mask              (mid_date) float64 dask.array<chunksize=(12771,), meta=np.ndarray>
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(12771,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(12771,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(12771,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(12771,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(12771,), meta=np.ndarray>
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...
s2_subset.v.mean(dim='mid_date').plot();
_images/ind_glacier_data_inspection_analysis_63_0.png

Checking coverage along a dimension

It would be nice to be able to scan/visualize and observe coverage of a variable along a dimension

Attempting that below…

First need to make a mask that will tell us all the possible ‘valid’ pixels. ie pixels over ice v. rock. Some versions of ITS_LIVE have a variable that indicates surface type that would be handy for this but the datacubes don’t. Start by taking the mean of velocity pixels along the time dimension, take all pixels in this array that aren’t NaN as ice pixels.

valid_pixels = sample_glacier_raster.v.count(dim=['x','y']).compute()
valid_pix_max = valid_pixels.max().data

cov = valid_pixels/valid_pix_max

sample_glacier_raster['cov'] = cov
sample_glacier_raster
<xarray.Dataset>
Dimensions:                    (mid_date: 20549, y: 54, x: 100)
Coordinates:
    mapping                    int64 0
  * mid_date                   (mid_date) datetime64[ns] 2013-04-09T16:49:00....
  * y                          (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                          (x) float64 2.36e+05 2.361e+05 ... 2.479e+05
Data variables: (12/54)
    acquisition_date_img1      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    acquisition_date_img2      (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    autoRIFT_software_version  (mid_date) <U5 dask.array<chunksize=(20549,), meta=np.ndarray>
    chip_size_height           (mid_date, y, x) float32 dask.array<chunksize=(20549, 20, 21), meta=np.ndarray>
    chip_size_width            (mid_date, y, x) float32 dask.array<chunksize=(20549, 20, 21), meta=np.ndarray>
    date_center                (mid_date) datetime64[ns] dask.array<chunksize=(20549,), meta=np.ndarray>
    ...                         ...
    vy_error_modeled           (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_error_slow              (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift            (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_mask       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    vy_stable_shift_slow       (mid_date) float64 dask.array<chunksize=(20549,), meta=np.ndarray>
    cov                        (mid_date) float64 0.0 0.8655 0.0 ... 0.0 0.9587
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...
#how many time steps are duplicates?, there are 16872 unique vals in mid_dates
np.unique(sample_glacier_raster['mid_date'].data).shape
(16872,)
fig, ax = plt.subplots(figsize=(30,3))
sample_glacier_raster.cov.plot(ax=ax, linestyle='None',marker = 'x')
[<matplotlib.lines.Line2D at 0x1b8398700>]
_images/ind_glacier_data_inspection_analysis_68_1.png
sample_glacier_raster.groupby('satellite_img1').mean()
<xarray.Dataset>
Dimensions:               (y: 54, x: 100, satellite_img1: 6)
Coordinates:
    mapping               int64 0
  * y                     (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                     (x) float64 2.36e+05 2.361e+05 ... 2.477e+05 2.479e+05
  * satellite_img1        (satellite_img1) object '1A' '1B' '2A' '2B' '8.' '9.'
Data variables: (12/43)
    chip_size_height      (satellite_img1, y, x) float32 dask.array<chunksize=(1, 20, 21), meta=np.ndarray>
    chip_size_width       (satellite_img1, y, x) float32 dask.array<chunksize=(1, 20, 21), meta=np.ndarray>
    date_dt               (satellite_img1) timedelta64[ns] dask.array<chunksize=(1,), meta=np.ndarray>
    interp_mask           (satellite_img1, y, x) float32 dask.array<chunksize=(1, 20, 21), meta=np.ndarray>
    roi_valid_percentage  (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    stable_count_mask     (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    ...                    ...
    vy_error_modeled      (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_error_slow         (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_stable_shift       (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_stable_shift_mask  (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_stable_shift_slow  (satellite_img1) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    cov                   (satellite_img1) float64 0.6748 0.3644 ... 0.2566
sample_glacier_raster.cov.groupby(sample_glacier_raster.satellite_img1)
DataArrayGroupBy, grouped over 'satellite_img1'
6 groups with labels '1A', '1B', '2A', '2B', '8.', '9.'.
sample_glacier_raster.groupby('mid_date')
DatasetGroupBy, grouped over 'mid_date'
16872 groups with labels 2013-04-09T16:49:00.5280849....
import flox.xarray
sample_glacier_raster.cov
<xarray.DataArray 'cov' (mid_date: 20549)>
array([0.        , 0.8654661 , 0.        , ..., 0.78813559, 0.        ,
       0.95868644])
Coordinates:
    mapping   int64 0
  * mid_date  (mid_date) datetime64[ns] 2013-04-09T16:49:00.528084992 ... 202...
coverage = flox.xarray.xarray_reduce(
    sample_glacier_raster.cov,
    sample_glacier_raster.satellite_img1.compute(),
    sample_glacier_raster.mid_date,
    func="mean",
    fill_value=0,
)
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/flox/aggregate_flox.py:105: RuntimeWarning: invalid value encountered in true_divide
  out /= nanlen(group_idx, array, size=size, axis=axis, fill_value=0)
plt.pcolormesh(coverage.mid_date, coverage.satellite_img1, coverage, cmap='viridis')
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x1b878cb80>
_images/ind_glacier_data_inspection_analysis_75_1.png

Seasonal mean velocities for each year with groupby

year_gb = sample_glacier_raster.groupby(sample_glacier_raster.mid_date.dt.year)
year_gb
DatasetGroupBy, grouped over 'year'
10 groups with labels 2013, 2014, 2015, ..., 2021, 2022.
year_gb.groups
#yr_season_gb = year_gb.groupby(year_gb.mid_date.dt.season).map(middate_mean)
{2013: [0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  32,
  33,
  34,
  35,
  36,
  37,
  38,
  39,
  40,
  41,
  42,
  43,
  44,
  45,
  46,
  47,
  48,
  49,
  50,
  51,
  52,
  53,
  54,
  55,
  56,
  57,
  58,
  59,
  60,
  61,
  62,
  63,
  64,
  65,
  66,
  67,
  68,
  69,
  70,
  71,
  72,
  73,
  74,
  75,
  76,
  77,
  78,
  79,
  80,
  81,
  82,
  83,
  84,
  85,
  86,
  87,
  88,
  89,
  90,
  91,
  92,
  93,
  94,
  95,
  96,
  97,
  98,
  99,
  100,
  101,
  102,
  103,
  104,
  105,
  106,
  107,
  108,
  109,
  110,
  111,
  112,
  113,
  114,
  115,
  116,
  117,
  118,
  119,
  120,
  121,
  122,
  123,
  124,
  125,
  126,
  127,
  128,
  129,
  130,
  131,
  132,
  133,
  134,
  135,
  136,
  137,
  138,
  139,
  140,
  141,
  142,
  143,
  144,
  145,
  146,
  147,
  148,
  149,
  150,
  151,
  152,
  153,
  154,
  155,
  156,
  157,
  158,
  159,
  160,
  161,
  162,
  163,
  164,
  165,
  166,
  167,
  168,
  169,
  170,
  171,
  172,
  173,
  174,
  175,
  176,
  177,
  178,
  179,
  180,
  181,
  182,
  183,
  184,
  185,
  186,
  187,
  188,
  189,
  190,
  191,
  192,
  193,
  194,
  195,
  196,
  197,
  198,
  199,
  200,
  201,
  202,
  203,
  204,
  205,
  206,
  207,
  208,
  209,
  210,
  211,
  212,
  213,
  214,
  215,
  216,
  217,
  218,
  219,
  220,
  221,
  222,
  223,
  224,
  225,
  226,
  227,
  228,
  229,
  230,
  231,
  232,
  233,
  234,
  235,
  236,
  237,
  238,
  239,
  240,
  241,
  242,
  243,
  244,
  245,
  246,
  247,
  248,
  249,
  250,
  251,
  252,
  253,
  254,
  255,
  256,
  257,
  258,
  259,
  260,
  261,
  262,
  263,
  264,
  265,
  266,
  267,
  268,
  269,
  270,
  271,
  272,
  273,
  274,
  275,
  276,
  277,
  278,
  279,
  280,
  281,
  282,
  283,
  284],
 2014: [285,
  286,
  287,
  288,
  289,
  290,
  291,
  292,
  293,
  294,
  295,
  296,
  297,
  298,
  299,
  300,
  301,
  302,
  303,
  304,
  305,
  306,
  307,
  308,
  309,
  310,
  311,
  312,
  313,
  314,
  315,
  316,
  317,
  318,
  319,
  320,
  321,
  322,
  323,
  324,
  325,
  326,
  327,
  328,
  329,
  330,
  331,
  332,
  333,
  334,
  335,
  336,
  337,
  338,
  339,
  340,
  341,
  342,
  343,
  344,
  345,
  346,
  347,
  348,
  349,
  350,
  351,
  352,
  353,
  354,
  355,
  356,
  357,
  358,
  359,
  360,
  361,
  362,
  363,
  364,
  365,
  366,
  367,
  368,
  369,
  370,
  371,
  372,
  373,
  374,
  375,
  376,
  377,
  378,
  379,
  380,
  381,
  382,
  383,
  384,
  385,
  386,
  387,
  388,
  389,
  390,
  391,
  392,
  393,
  394,
  395,
  396,
  397,
  398,
  399,
  400,
  401,
  402,
  403,
  404,
  405,
  406,
  407,
  408,
  409,
  410,
  411,
  412,
  413,
  414,
  415,
  416,
  417,
  418,
  419,
  420,
  421,
  422,
  423,
  424,
  425,
  426,
  427,
  428,
  429,
  430,
  431,
  432,
  433,
  434,
  435,
  436,
  437,
  438,
  439,
  440,
  441,
  442,
  443,
  444,
  445,
  446,
  447,
  448,
  449,
  450,
  451,
  452,
  453,
  454,
  455,
  456,
  457,
  458,
  459,
  460,
  461,
  462,
  463,
  464,
  465,
  466,
  467,
  468,
  469,
  470,
  471,
  472,
  473,
  474,
  475,
  476,
  477,
  478,
  479,
  480,
  481,
  482,
  483,
  484,
  485,
  486,
  487,
  488,
  489,
  490,
  491,
  492,
  493,
  494,
  495,
  496,
  497,
  498,
  499,
  500,
  501,
  502,
  503,
  504,
  505,
  506,
  507,
  508,
  509,
  510,
  511,
  512,
  513,
  514,
  515,
  516,
  517,
  518,
  519,
  520,
  521,
  522,
  523,
  524,
  525,
  526,
  527,
  528,
  529,
  530,
  531,
  532,
  533,
  534,
  535,
  536,
  537,
  538,
  539,
  540,
  541,
  542,
  543,
  544,
  545,
  546,
  547,
  548,
  549,
  550,
  551,
  552,
  553,
  554,
  555,
  556,
  557,
  558,
  559,
  560,
  561,
  562,
  563,
  564,
  565,
  566,
  567,
  568,
  569,
  570,
  571,
  572,
  573,
  574,
  575,
  576,
  577,
  578,
  579,
  580,
  581,
  582,
  583,
  584,
  585,
  586,
  587,
  588,
  589,
  590,
  591,
  592,
  593,
  594,
  595,
  596,
  597,
  598,
  599,
  600,
  601,
  602,
  603,
  604,
  605,
  606,
  607,
  608,
  609,
  610,
  611,
  612,
  613,
  614,
  615,
  616,
  617,
  618,
  619,
  620,
  621,
  622,
  623,
  624,
  625,
  626,
  627,
  628,
  629,
  630,
  631,
  632,
  633,
  634,
  635,
  636,
  637,
  638,
  639,
  640,
  641,
  642,
  643,
  644,
  645,
  646,
  647,
  648,
  649,
  650,
  651,
  652,
  653,
  654,
  655,
  656,
  657,
  658,
  659,
  660,
  661,
  662,
  663,
  664,
  665,
  666,
  667,
  668,
  669,
  670,
  671,
  672,
  673,
  674,
  675,
  676,
  677,
  678,
  679,
  680,
  681,
  682,
  683,
  684,
  685,
  686,
  687,
  688,
  689,
  690,
  691,
  692,
  693,
  694,
  695,
  696,
  697,
  698,
  699,
  700,
  701,
  702,
  703,
  704,
  705,
  706,
  707,
  708,
  709,
  710,
  711,
  712,
  713,
  714,
  715,
  716,
  717,
  718,
  719,
  720,
  721,
  722,
  723,
  724,
  725,
  726,
  727,
  728,
  729,
  730,
  731,
  732,
  733,
  734,
  735,
  736,
  737,
  738,
  739,
  740,
  741,
  742,
  743,
  744,
  745,
  746,
  747,
  748,
  749,
  750,
  751,
  752,
  753,
  754,
  755,
  756,
  757,
  758,
  759,
  760,
  761,
  762,
  763,
  764,
  765,
  766,
  767,
  768,
  769,
  770,
  771,
  772,
  773,
  774,
  775,
  776,
  777,
  778,
  779,
  780,
  781,
  782,
  783,
  784,
  785,
  786,
  787,
  788,
  789,
  790,
  791,
  792,
  793,
  794,
  795,
  796,
  797,
  798,
  799,
  800,
  801,
  802,
  803,
  804,
  805,
  806,
  807,
  808,
  809,
  810,
  811,
  812,
  813,
  814,
  815,
  816,
  817,
  818,
  819,
  820,
  821,
  822,
  823,
  824,
  825,
  826,
  827,
  828,
  829,
  830,
  831,
  832,
  833,
  834,
  835,
  836,
  837,
  838,
  839,
  840,
  841,
  842,
  843,
  844,
  845,
  846,
  847,
  848,
  849,
  850,
  851,
  852,
  853,
  854,
  855,
  856,
  857,
  858,
  859,
  860,
  861,
  862,
  863,
  864,
  865,
  866,
  867,
  868,
  869,
  870,
  871,
  872,
  873,
  874,
  875,
  876,
  877,
  878,
  879,
  880,
  881,
  882,
  883,
  884,
  885,
  886,
  887,
  888,
  889,
  890,
  891,
  892,
  893,
  894,
  895,
  896,
  897,
  898,
  899,
  900,
  901,
  902,
  903,
  904,
  905,
  906,
  907,
  908,
  909,
  910,
  911,
  912,
  913,
  914,
  915,
  916,
  917,
  918,
  919,
  920,
  921,
  922,
  923,
  924,
  925,
  926,
  927,
  928,
  929,
  930,
  931,
  932,
  933,
  934,
  935,
  936,
  937,
  938,
  939,
  940,
  941,
  942,
  943,
  944,
  945,
  946,
  947,
  948,
  949,
  950,
  951,
  952,
  953,
  954,
  955,
  956,
  957,
  958,
  959,
  960,
  961,
  962,
  963,
  964,
  965,
  966,
  967,
  968,
  969,
  970,
  971,
  972,
  973,
  974,
  975,
  976,
  977,
  978,
  979,
  980,
  981,
  982,
  983,
  984,
  985,
  986,
  987,
  988,
  989,
  990,
  991,
  992,
  993,
  994,
  995,
  996,
  997,
  998,
  999,
  1000,
  1001,
  1002,
  1003,
  1004,
  1005,
  1006,
  1007,
  1008,
  1009,
  1010,
  1011,
  1012,
  1013,
  1014,
  1015,
  1016,
  1017,
  1018,
  1019,
  1020,
  1021,
  1022,
  1023,
  1024,
  1025,
  1026,
  1027,
  1028,
  1029,
  1030,
  1031,
  1032,
  1033,
  1034,
  1035,
  1036,
  1037,
  1038,
  1039,
  1040,
  1041,
  1042,
  1043,
  1044,
  1045,
  1046,
  1047,
  1048,
  1049,
  1050,
  1051,
  1052,
  1053,
  1054,
  1055,
  1056,
  1057,
  1058,
  1059,
  1060,
  1061,
  1062,
  1063,
  1064,
  1065,
  1066,
  1067,
  1068,
  1069,
  1070,
  1071,
  1072,
  1073,
  1074,
  1075,
  1076,
  1077,
  1078,
  1079,
  1080,
  1081,
  1082,
  1083,
  1084,
  1085,
  1086,
  1087,
  1088,
  1089,
  1090,
  1091,
  1092,
  1093,
  1094,
  1095,
  1096,
  1097,
  1098,
  1099,
  1100,
  1101,
  1102,
  1103,
  1104,
  1105,
  1106,
  1107,
  1108,
  1109,
  1110,
  1111,
  1112,
  1113,
  1114,
  1115,
  1116,
  1117,
  1118,
  1119,
  1120,
  1121,
  1122,
  1123,
  1124,
  1125,
  1126,
  1127,
  1128,
  1129,
  1130,
  1131,
  1132,
  1133,
  1134,
  1135,
  1136,
  1137,
  1138,
  1139,
  1140,
  1141,
  1142,
  1143,
  1144,
  1145,
  1146,
  1147,
  1148,
  1149,
  1150,
  1151,
  1152,
  1153,
  1154,
  1155,
  1156,
  1157,
  1158,
  1159,
  1160,
  1161,
  1162,
  1163,
  1164,
  1165,
  1166,
  1167,
  1168,
  1169,
  1170,
  1171,
  1172,
  1173,
  1174,
  1175,
  1176,
  1177],
 2015: [1178,
  1179,
  1180,
  1181,
  1182,
  1183,
  1184,
  1185,
  1186,
  1187,
  1188,
  1189,
  1190,
  1191,
  1192,
  1193,
  1194,
  1195,
  1196,
  1197,
  1198,
  1199,
  1200,
  1201,
  1202,
  1203,
  1204,
  1205,
  1206,
  1207,
  1208,
  1209,
  1210,
  1211,
  1212,
  1213,
  1214,
  1215,
  1216,
  1217,
  1218,
  1219,
  1220,
  1221,
  1222,
  1223,
  1224,
  1225,
  1226,
  1227,
  1228,
  1229,
  1230,
  1231,
  1232,
  1233,
  1234,
  1235,
  1236,
  1237,
  1238,
  1239,
  1240,
  1241,
  1242,
  1243,
  1244,
  1245,
  1246,
  1247,
  1248,
  1249,
  1250,
  1251,
  1252,
  1253,
  1254,
  1255,
  1256,
  1257,
  1258,
  1259,
  1260,
  1261,
  1262,
  1263,
  1264,
  1265,
  1266,
  1267,
  1268,
  1269,
  1270,
  1271,
  1272,
  1273,
  1274,
  1275,
  1276,
  1277,
  1278,
  1279,
  1280,
  1281,
  1282,
  1283,
  1284,
  1285,
  1286,
  1287,
  1288,
  1289,
  1290,
  1291,
  1292,
  1293,
  1294,
  1295,
  1296,
  1297,
  1298,
  1299,
  1300,
  1301,
  1302,
  1303,
  1304,
  1305,
  1306,
  1307,
  1308,
  1309,
  1310,
  1311,
  1312,
  1313,
  1314,
  1315,
  1316,
  1317,
  1318,
  1319,
  1320,
  1321,
  1322,
  1323,
  1324,
  1325,
  1326,
  1327,
  1328,
  1329,
  1330,
  1331,
  1332,
  1333,
  1334,
  1335,
  1336,
  1337,
  1338,
  1339,
  1340,
  1341,
  1342,
  1343,
  1344,
  1345,
  1346,
  1347,
  1348,
  1349,
  1350,
  1351,
  1352,
  1353,
  1354,
  1355,
  1356,
  1357,
  1358,
  1359,
  1360,
  1361,
  1362,
  1363,
  1364,
  1365,
  1366,
  1367,
  1368,
  1369,
  1370,
  1371,
  1372,
  1373,
  1374,
  1375,
  1376,
  1377,
  1378,
  1379,
  1380,
  1381,
  1382,
  1383,
  1384,
  1385,
  1386,
  1387,
  1388,
  1389,
  1390,
  1391,
  1392,
  1393,
  1394,
  1395,
  1396,
  1397,
  1398,
  1399,
  1400,
  1401,
  1402,
  1403,
  1404,
  1405,
  1406,
  1407,
  1408,
  1409,
  1410,
  1411,
  1412,
  1413,
  1414,
  1415,
  1416,
  1417,
  1418,
  1419,
  1420,
  1421,
  1422,
  1423,
  1424,
  1425,
  1426,
  1427,
  1428,
  1429,
  1430,
  1431,
  1432,
  1433,
  1434,
  1435,
  1436,
  1437,
  1438,
  1439,
  1440,
  1441,
  1442,
  1443,
  1444,
  1445,
  1446,
  1447,
  1448,
  1449,
  1450,
  1451,
  1452,
  1453,
  1454,
  1455,
  1456,
  1457,
  1458,
  1459,
  1460,
  1461,
  1462,
  1463,
  1464,
  1465,
  1466,
  1467,
  1468,
  1469,
  1470,
  1471,
  1472,
  1473,
  1474,
  1475,
  1476,
  1477,
  1478,
  1479,
  1480,
  1481,
  1482,
  1483,
  1484,
  1485,
  1486,
  1487,
  1488,
  1489,
  1490,
  1491,
  1492,
  1493,
  1494,
  1495,
  1496,
  1497,
  1498,
  1499,
  1500,
  1501,
  1502,
  1503,
  1504,
  1505,
  1506,
  1507,
  1508,
  1509,
  1510,
  1511,
  1512,
  1513,
  1514,
  1515,
  1516,
  1517,
  1518,
  1519,
  1520,
  1521,
  1522,
  1523,
  1524,
  1525,
  1526,
  1527,
  1528,
  1529,
  1530,
  1531,
  1532,
  1533,
  1534,
  1535,
  1536,
  1537,
  1538,
  1539,
  1540,
  1541,
  1542,
  1543,
  1544,
  1545,
  1546,
  1547,
  1548,
  1549,
  1550,
  1551,
  1552,
  1553,
  1554,
  1555,
  1556,
  1557,
  1558,
  1559,
  1560,
  1561,
  1562,
  1563,
  1564,
  1565,
  1566,
  1567,
  1568,
  1569,
  1570,
  1571,
  1572,
  1573,
  1574,
  1575,
  1576,
  1577,
  1578,
  1579,
  1580,
  1581,
  1582,
  1583,
  1584,
  1585,
  1586,
  1587,
  1588,
  1589,
  1590,
  1591,
  1592,
  1593,
  1594,
  1595,
  1596,
  1597,
  1598,
  1599,
  1600,
  1601,
  1602,
  1603,
  1604,
  1605,
  1606,
  1607,
  1608,
  1609,
  1610,
  1611,
  1612,
  1613,
  1614,
  1615,
  1616,
  1617,
  1618,
  1619,
  1620,
  1621,
  1622,
  1623,
  1624,
  1625,
  1626,
  1627,
  1628,
  1629,
  1630,
  1631,
  1632,
  1633,
  1634,
  1635,
  1636,
  1637,
  1638,
  1639,
  1640,
  1641,
  1642,
  1643,
  1644,
  1645,
  1646,
  1647,
  1648,
  1649,
  1650,
  1651,
  1652,
  1653,
  1654,
  1655,
  1656,
  1657,
  1658,
  1659,
  1660,
  1661,
  1662,
  1663,
  1664,
  1665,
  1666,
  1667,
  1668,
  1669,
  1670,
  1671,
  1672,
  1673,
  1674,
  1675,
  1676,
  1677,
  1678,
  1679,
  1680,
  1681,
  1682,
  1683,
  1684,
  1685,
  1686,
  1687,
  1688,
  1689,
  1690,
  1691,
  1692,
  1693,
  1694,
  1695,
  1696,
  1697,
  1698,
  1699,
  1700,
  1701,
  1702,
  1703,
  1704,
  1705,
  1706,
  1707,
  1708,
  1709,
  1710,
  1711,
  1712,
  1713,
  1714,
  1715,
  1716,
  1717,
  1718,
  1719,
  1720,
  1721,
  1722,
  1723,
  1724,
  1725,
  1726,
  1727,
  1728,
  1729,
  1730,
  1731,
  1732,
  1733,
  1734,
  1735,
  1736,
  1737,
  1738,
  1739,
  1740,
  1741,
  1742,
  1743,
  1744,
  1745,
  1746,
  1747,
  1748,
  1749,
  1750,
  1751,
  1752,
  1753,
  1754,
  1755,
  1756,
  1757,
  1758,
  1759,
  1760,
  1761,
  1762,
  1763,
  1764,
  1765,
  1766,
  1767,
  1768,
  1769,
  1770,
  1771,
  1772,
  1773,
  1774,
  1775,
  1776,
  1777,
  1778,
  1779,
  1780,
  1781,
  1782,
  1783,
  1784,
  1785,
  1786,
  1787,
  1788,
  1789,
  1790,
  1791,
  1792,
  1793,
  1794,
  1795,
  1796,
  1797,
  1798,
  1799,
  1800,
  1801,
  1802,
  1803,
  1804,
  1805,
  1806,
  1807,
  1808,
  1809,
  1810,
  1811,
  1812,
  1813,
  1814,
  1815,
  1816,
  1817,
  1818,
  1819,
  1820,
  1821,
  1822,
  1823,
  1824,
  1825,
  1826,
  1827,
  1828,
  1829,
  1830,
  1831,
  1832,
  1833,
  1834,
  1835,
  1836,
  1837,
  1838,
  1839,
  1840,
  1841,
  1842,
  1843,
  1844,
  1845,
  1846,
  1847,
  1848,
  1849,
  1850,
  1851,
  1852,
  1853,
  1854,
  1855,
  1856,
  1857,
  1858,
  1859,
  1860,
  1861,
  1862,
  1863,
  1864,
  1865,
  1866,
  1867,
  1868,
  1869,
  1870,
  1871,
  1872,
  1873,
  1874,
  1875,
  1876,
  1877,
  1878,
  1879,
  1880,
  1881,
  1882,
  1883,
  1884,
  1885,
  1886,
  1887,
  1888,
  1889,
  1890,
  1891,
  1892,
  1893,
  1894,
  1895,
  1896,
  1897,
  1898,
  1899,
  1900,
  1901,
  1902,
  1903,
  1904,
  1905,
  1906,
  1907,
  1908,
  1909,
  1910,
  1911,
  1912,
  1913,
  1914,
  1915,
  1916,
  1917,
  1918,
  1919,
  1920,
  1921,
  1922,
  1923,
  1924,
  1925,
  1926,
  1927,
  1928,
  1929,
  1930,
  1931,
  1932,
  1933,
  1934,
  1935,
  1936,
  1937,
  1938,
  1939,
  1940,
  1941,
  1942,
  1943,
  1944,
  1945,
  1946,
  1947,
  1948,
  1949,
  1950,
  1951,
  1952,
  1953,
  1954,
  1955,
  1956,
  1957,
  1958,
  1959,
  1960,
  1961,
  1962,
  1963,
  1964,
  1965,
  1966,
  1967,
  1968,
  1969,
  1970,
  1971,
  1972,
  1973,
  1974,
  1975,
  1976,
  1977,
  1978,
  1979,
  1980,
  1981,
  1982,
  1983,
  1984,
  1985,
  1986,
  1987,
  1988,
  1989,
  1990,
  1991,
  1992,
  1993,
  1994,
  1995,
  1996,
  1997,
  1998,
  1999,
  2000,
  2001,
  2002,
  2003,
  2004,
  2005,
  2006,
  2007,
  2008,
  2009,
  2010,
  2011,
  2012,
  2013,
  2014,
  2015,
  2016,
  2017,
  2018,
  2019,
  2020,
  2021,
  2022,
  2023,
  2024,
  2025,
  2026,
  2027,
  2028,
  2029,
  2030,
  2031,
  2032,
  2033,
  2034,
  2035,
  2036,
  2037,
  2038,
  2039,
  2040,
  2041,
  2042,
  2043,
  2044,
  2045,
  2046,
  2047,
  2048,
  2049,
  2050,
  2051,
  2052,
  2053,
  2054,
  2055,
  2056,
  2057,
  2058,
  2059,
  2060,
  2061,
  2062,
  2063],
 2016: [2064,
  2065,
  2066,
  2067,
  2068,
  2069,
  2070,
  2071,
  2072,
  2073,
  2074,
  2075,
  2076,
  2077,
  2078,
  2079,
  2080,
  2081,
  2082,
  2083,
  2084,
  2085,
  2086,
  2087,
  2088,
  2089,
  2090,
  2091,
  2092,
  2093,
  2094,
  2095,
  2096,
  2097,
  2098,
  2099,
  2100,
  2101,
  2102,
  2103,
  2104,
  2105,
  2106,
  2107,
  2108,
  2109,
  2110,
  2111,
  2112,
  2113,
  2114,
  2115,
  2116,
  2117,
  2118,
  2119,
  2120,
  2121,
  2122,
  2123,
  2124,
  2125,
  2126,
  2127,
  2128,
  2129,
  2130,
  2131,
  2132,
  2133,
  2134,
  2135,
  2136,
  2137,
  2138,
  2139,
  2140,
  2141,
  2142,
  2143,
  2144,
  2145,
  2146,
  2147,
  2148,
  2149,
  2150,
  2151,
  2152,
  2153,
  2154,
  2155,
  2156,
  2157,
  2158,
  2159,
  2160,
  2161,
  2162,
  2163,
  2164,
  2165,
  2166,
  2167,
  2168,
  2169,
  2170,
  2171,
  2172,
  2173,
  2174,
  2175,
  2176,
  2177,
  2178,
  2179,
  2180,
  2181,
  2182,
  2183,
  2184,
  2185,
  2186,
  2187,
  2188,
  2189,
  2190,
  2191,
  2192,
  2193,
  2194,
  2195,
  2196,
  2197,
  2198,
  2199,
  2200,
  2201,
  2202,
  2203,
  2204,
  2205,
  2206,
  2207,
  2208,
  2209,
  2210,
  2211,
  2212,
  2213,
  2214,
  2215,
  2216,
  2217,
  2218,
  2219,
  2220,
  2221,
  2222,
  2223,
  2224,
  2225,
  2226,
  2227,
  2228,
  2229,
  2230,
  2231,
  2232,
  2233,
  2234,
  2235,
  2236,
  2237,
  2238,
  2239,
  2240,
  2241,
  2242,
  2243,
  2244,
  2245,
  2246,
  2247,
  2248,
  2249,
  2250,
  2251,
  2252,
  2253,
  2254,
  2255,
  2256,
  2257,
  2258,
  2259,
  2260,
  2261,
  2262,
  2263,
  2264,
  2265,
  2266,
  2267,
  2268,
  2269,
  2270,
  2271,
  2272,
  2273,
  2274,
  2275,
  2276,
  2277,
  2278,
  2279,
  2280,
  2281,
  2282,
  2283,
  2284,
  2285,
  2286,
  2287,
  2288,
  2289,
  2290,
  2291,
  2292,
  2293,
  2294,
  2295,
  2296,
  2297,
  2298,
  2299,
  2300,
  2301,
  2302,
  2303,
  2304,
  2305,
  2306,
  2307,
  2308,
  2309,
  2310,
  2311,
  2312,
  2313,
  2314,
  2315,
  2316,
  2317,
  2318,
  2319,
  2320,
  2321,
  2322,
  2323,
  2324,
  2325,
  2326,
  2327,
  2328,
  2329,
  2330,
  2331,
  2332,
  2333,
  2334,
  2335,
  2336,
  2337,
  2338,
  2339,
  2340,
  2341,
  2342,
  2343,
  2344,
  2345,
  2346,
  2347,
  2348,
  2349,
  2350,
  2351,
  2352,
  2353,
  2354,
  2355,
  2356,
  2357,
  2358,
  2359,
  2360,
  2361,
  2362,
  2363,
  2364,
  2365,
  2366,
  2367,
  2368,
  2369,
  2370,
  2371,
  2372,
  2373,
  2374,
  2375,
  2376,
  2377,
  2378,
  2379,
  2380,
  2381,
  2382,
  2383,
  2384,
  2385,
  2386,
  2387,
  2388,
  2389,
  2390,
  2391,
  2392,
  2393,
  2394,
  2395,
  2396,
  2397,
  2398,
  2399,
  2400,
  2401,
  2402,
  2403,
  2404,
  2405,
  2406,
  2407,
  2408,
  2409,
  2410,
  2411,
  2412,
  2413,
  2414,
  2415,
  2416,
  2417,
  2418,
  2419,
  2420,
  2421,
  2422,
  2423,
  2424,
  2425,
  2426,
  2427,
  2428,
  2429,
  2430,
  2431,
  2432,
  2433,
  2434,
  2435,
  2436,
  2437,
  2438,
  2439,
  2440,
  2441,
  2442,
  2443,
  2444,
  2445,
  2446,
  2447,
  2448,
  2449,
  2450,
  2451,
  2452,
  2453,
  2454,
  2455,
  2456,
  2457,
  2458,
  2459,
  2460,
  2461,
  2462,
  2463,
  2464,
  2465,
  2466,
  2467,
  2468,
  2469,
  2470,
  2471,
  2472,
  2473,
  2474,
  2475,
  2476,
  2477,
  2478,
  2479,
  2480,
  2481,
  2482,
  2483,
  2484,
  2485,
  2486,
  2487,
  2488,
  2489,
  2490,
  2491,
  2492,
  2493,
  2494,
  2495,
  2496,
  2497,
  2498,
  2499,
  2500,
  2501,
  2502,
  2503,
  2504,
  2505,
  2506,
  2507,
  2508,
  2509,
  2510,
  2511,
  2512,
  2513,
  2514,
  2515,
  2516,
  2517,
  2518,
  2519,
  2520,
  2521,
  2522,
  2523,
  2524,
  2525,
  2526,
  2527,
  2528,
  2529,
  2530,
  2531,
  2532,
  2533,
  2534,
  2535,
  2536,
  2537,
  2538,
  2539,
  2540,
  2541,
  2542,
  2543,
  2544,
  2545,
  2546,
  2547,
  2548,
  2549,
  2550,
  2551,
  2552,
  2553,
  2554,
  2555,
  2556,
  2557,
  2558,
  2559,
  2560,
  2561,
  2562,
  2563,
  2564,
  2565,
  2566,
  2567,
  2568,
  2569,
  2570,
  2571,
  2572,
  2573,
  2574,
  2575,
  2576,
  2577,
  2578,
  2579,
  2580,
  2581,
  2582,
  2583,
  2584,
  2585,
  2586,
  2587,
  2588,
  2589,
  2590,
  2591,
  2592,
  2593,
  2594,
  2595,
  2596,
  2597,
  2598,
  2599,
  2600,
  2601,
  2602,
  2603,
  2604,
  2605,
  2606,
  2607,
  2608,
  2609,
  2610,
  2611,
  2612,
  2613,
  2614,
  2615,
  2616,
  2617,
  2618,
  2619,
  2620,
  2621,
  2622,
  2623,
  2624,
  2625,
  2626,
  2627,
  2628,
  2629,
  2630,
  2631,
  2632,
  2633,
  2634,
  2635,
  2636,
  2637,
  2638,
  2639,
  2640,
  2641,
  2642,
  2643,
  2644,
  2645,
  2646,
  2647,
  2648,
  2649,
  2650,
  2651,
  2652,
  2653,
  2654,
  2655,
  2656,
  2657,
  2658,
  2659,
  2660,
  2661,
  2662,
  2663,
  2664,
  2665,
  2666,
  2667,
  2668,
  2669,
  2670,
  2671,
  2672,
  2673,
  2674,
  2675,
  2676,
  2677,
  2678,
  2679,
  2680,
  2681,
  2682,
  2683,
  2684,
  2685,
  2686,
  2687,
  2688,
  2689,
  2690,
  2691,
  2692,
  2693,
  2694,
  2695,
  2696,
  2697,
  2698,
  2699,
  2700,
  2701,
  2702,
  2703,
  2704,
  2705,
  2706,
  2707,
  2708,
  2709,
  2710,
  2711,
  2712,
  2713,
  2714,
  2715,
  2716,
  2717,
  2718,
  2719,
  2720,
  2721,
  2722,
  2723,
  2724,
  2725,
  2726,
  2727,
  2728,
  2729,
  2730,
  2731,
  2732,
  2733,
  2734,
  2735,
  2736,
  2737,
  2738,
  2739,
  2740,
  2741,
  2742,
  2743,
  2744,
  2745,
  2746,
  2747,
  2748,
  2749,
  2750,
  2751,
  2752,
  2753,
  2754,
  2755,
  2756,
  2757,
  2758,
  2759,
  2760,
  2761,
  2762,
  2763,
  2764,
  2765,
  2766,
  2767,
  2768,
  2769,
  2770,
  2771,
  2772,
  2773,
  2774,
  2775,
  2776,
  2777,
  2778,
  2779,
  2780,
  2781,
  2782,
  2783,
  2784,
  2785,
  2786,
  2787,
  2788,
  2789,
  2790,
  2791,
  2792,
  2793,
  2794,
  2795,
  2796,
  2797,
  2798,
  2799,
  2800,
  2801,
  2802,
  2803,
  2804,
  2805,
  2806,
  2807,
  2808,
  2809,
  2810,
  2811,
  2812,
  2813,
  2814,
  2815,
  2816,
  2817,
  2818,
  2819,
  2820,
  2821,
  2822,
  2823,
  2824,
  2825,
  2826,
  2827,
  2828,
  2829,
  2830,
  2831,
  2832,
  2833,
  2834,
  2835,
  2836,
  2837,
  2838,
  2839,
  2840,
  2841,
  2842,
  2843,
  2844,
  2845,
  2846,
  2847,
  2848,
  2849,
  2850,
  2851,
  2852,
  2853,
  2854,
  2855,
  2856,
  2857,
  2858,
  2859,
  2860,
  2861,
  2862,
  2863,
  2864,
  2865,
  2866,
  2867,
  2868,
  2869,
  2870,
  2871,
  2872,
  2873,
  2874,
  2875,
  2876,
  2877,
  2878,
  2879,
  2880,
  2881,
  2882,
  2883,
  2884,
  2885,
  2886,
  2887,
  2888,
  2889,
  2890,
  2891,
  2892,
  2893,
  2894,
  2895,
  2896,
  2897,
  2898,
  2899,
  2900,
  2901,
  2902,
  2903,
  2904,
  2905,
  2906,
  2907,
  2908,
  2909,
  2910,
  2911,
  2912,
  2913,
  2914,
  2915,
  2916,
  2917,
  2918,
  2919,
  2920,
  2921,
  2922,
  2923,
  2924,
  2925,
  2926,
  2927,
  2928,
  2929,
  2930,
  2931,
  2932,
  2933,
  2934,
  2935,
  2936,
  2937,
  2938,
  2939,
  2940,
  2941,
  2942,
  2943,
  2944,
  2945,
  2946,
  2947,
  2948,
  2949,
  2950,
  2951,
  2952,
  2953,
  2954,
  2955,
  2956,
  2957,
  2958,
  2959,
  2960,
  2961,
  2962,
  2963,
  2964,
  2965,
  2966,
  2967,
  2968,
  2969,
  2970,
  2971,
  2972,
  2973,
  2974,
  2975,
  2976,
  2977,
  2978,
  2979,
  2980,
  2981,
  2982,
  2983,
  2984,
  2985,
  2986,
  2987,
  2988,
  2989,
  2990,
  2991,
  2992,
  2993,
  2994,
  2995,
  2996,
  2997,
  2998,
  2999,
  3000,
  3001,
  3002,
  3003,
  3004,
  3005,
  3006,
  3007,
  3008,
  3009,
  3010,
  3011,
  3012,
  3013,
  3014,
  3015,
  3016,
  3017,
  3018,
  3019,
  3020,
  3021,
  3022,
  3023,
  3024,
  3025,
  3026,
  3027,
  3028,
  3029,
  3030,
  3031,
  3032,
  3033,
  3034,
  3035,
  3036,
  3037,
  3038,
  3039,
  3040,
  3041,
  3042,
  3043,
  3044,
  3045,
  3046,
  3047,
  3048,
  3049,
  3050,
  3051,
  3052,
  3053,
  3054,
  3055,
  3056,
  3057,
  3058,
  3059,
  3060,
  3061,
  3062,
  3063,
  ...],
 2017: [3102,
  3103,
  3104,
  3105,
  3106,
  3107,
  3108,
  3109,
  3110,
  3111,
  3112,
  3113,
  3114,
  3115,
  3116,
  3117,
  3118,
  3119,
  3120,
  3121,
  3122,
  3123,
  3124,
  3125,
  3126,
  3127,
  3128,
  3129,
  3130,
  3131,
  3132,
  3133,
  3134,
  3135,
  3136,
  3137,
  3138,
  3139,
  3140,
  3141,
  3142,
  3143,
  3144,
  3145,
  3146,
  3147,
  3148,
  3149,
  3150,
  3151,
  3152,
  3153,
  3154,
  3155,
  3156,
  3157,
  3158,
  3159,
  3160,
  3161,
  3162,
  3163,
  3164,
  3165,
  3166,
  3167,
  3168,
  3169,
  3170,
  3171,
  3172,
  3173,
  3174,
  3175,
  3176,
  3177,
  3178,
  3179,
  3180,
  3181,
  3182,
  3183,
  3184,
  3185,
  3186,
  3187,
  3188,
  3189,
  3190,
  3191,
  3192,
  3193,
  3194,
  3195,
  3196,
  3197,
  3198,
  3199,
  3200,
  3201,
  3202,
  3203,
  3204,
  3205,
  3206,
  3207,
  3208,
  3209,
  3210,
  3211,
  3212,
  3213,
  3214,
  3215,
  3216,
  3217,
  3218,
  3219,
  3220,
  3221,
  3222,
  3223,
  3224,
  3225,
  3226,
  3227,
  3228,
  3229,
  3230,
  3231,
  3232,
  3233,
  3234,
  3235,
  3236,
  3237,
  3238,
  3239,
  3240,
  3241,
  3242,
  3243,
  3244,
  3245,
  3246,
  3247,
  3248,
  3249,
  3250,
  3251,
  3252,
  3253,
  3254,
  3255,
  3256,
  3257,
  3258,
  3259,
  3260,
  3261,
  3262,
  3263,
  3264,
  3265,
  3266,
  3267,
  3268,
  3269,
  3270,
  3271,
  3272,
  3273,
  3274,
  3275,
  3276,
  3277,
  3278,
  3279,
  3280,
  3281,
  3282,
  3283,
  3284,
  3285,
  3286,
  3287,
  3288,
  3289,
  3290,
  3291,
  3292,
  3293,
  3294,
  3295,
  3296,
  3297,
  3298,
  3299,
  3300,
  3301,
  3302,
  3303,
  3304,
  3305,
  3306,
  3307,
  3308,
  3309,
  3310,
  3311,
  3312,
  3313,
  3314,
  3315,
  3316,
  3317,
  3318,
  3319,
  3320,
  3321,
  3322,
  3323,
  3324,
  3325,
  3326,
  3327,
  3328,
  3329,
  3330,
  3331,
  3332,
  3333,
  3334,
  3335,
  3336,
  3337,
  3338,
  3339,
  3340,
  3341,
  3342,
  3343,
  3344,
  3345,
  3346,
  3347,
  3348,
  3349,
  3350,
  3351,
  3352,
  3353,
  3354,
  3355,
  3356,
  3357,
  3358,
  3359,
  3360,
  3361,
  3362,
  3363,
  3364,
  3365,
  3366,
  3367,
  3368,
  3369,
  3370,
  3371,
  3372,
  3373,
  3374,
  3375,
  3376,
  3377,
  3378,
  3379,
  3380,
  3381,
  3382,
  3383,
  3384,
  3385,
  3386,
  3387,
  3388,
  3389,
  3390,
  3391,
  3392,
  3393,
  3394,
  3395,
  3396,
  3397,
  3398,
  3399,
  3400,
  3401,
  3402,
  3403,
  3404,
  3405,
  3406,
  3407,
  3408,
  3409,
  3410,
  3411,
  3412,
  3413,
  3414,
  3415,
  3416,
  3417,
  3418,
  3419,
  3420,
  3421,
  3422,
  3423,
  3424,
  3425,
  3426,
  3427,
  3428,
  3429,
  3430,
  3431,
  3432,
  3433,
  3434,
  3435,
  3436,
  3437,
  3438,
  3439,
  3440,
  3441,
  3442,
  3443,
  3444,
  3445,
  3446,
  3447,
  3448,
  3449,
  3450,
  3451,
  3452,
  3453,
  3454,
  3455,
  3456,
  3457,
  3458,
  3459,
  3460,
  3461,
  3462,
  3463,
  3464,
  3465,
  3466,
  3467,
  3468,
  3469,
  3470,
  3471,
  3472,
  3473,
  3474,
  3475,
  3476,
  3477,
  3478,
  3479,
  3480,
  3481,
  3482,
  3483,
  3484,
  3485,
  3486,
  3487,
  3488,
  3489,
  3490,
  3491,
  3492,
  3493,
  3494,
  3495,
  3496,
  3497,
  3498,
  3499,
  3500,
  3501,
  3502,
  3503,
  3504,
  3505,
  3506,
  3507,
  3508,
  3509,
  3510,
  3511,
  3512,
  3513,
  3514,
  3515,
  3516,
  3517,
  3518,
  3519,
  3520,
  3521,
  3522,
  3523,
  3524,
  3525,
  3526,
  3527,
  3528,
  3529,
  3530,
  3531,
  3532,
  3533,
  3534,
  3535,
  3536,
  3537,
  3538,
  3539,
  3540,
  3541,
  3542,
  3543,
  3544,
  3545,
  3546,
  3547,
  3548,
  3549,
  3550,
  3551,
  3552,
  3553,
  3554,
  3555,
  3556,
  3557,
  3558,
  3559,
  3560,
  3561,
  3562,
  3563,
  3564,
  3565,
  3566,
  3567,
  3568,
  3569,
  3570,
  3571,
  3572,
  3573,
  3574,
  3575,
  3576,
  3577,
  3578,
  3579,
  3580,
  3581,
  3582,
  3583,
  3584,
  3585,
  3586,
  3587,
  3588,
  3589,
  3590,
  3591,
  3592,
  3593,
  3594,
  3595,
  3596,
  3597,
  3598,
  3599,
  3600,
  3601,
  3602,
  3603,
  3604,
  3605,
  3606,
  3607,
  3608,
  3609,
  3610,
  3611,
  3612,
  3613,
  3614,
  3615,
  3616,
  3617,
  3618,
  3619,
  3620,
  3621,
  3622,
  3623,
  3624,
  3625,
  3626,
  3627,
  3628,
  3629,
  3630,
  3631,
  3632,
  3633,
  3634,
  3635,
  3636,
  3637,
  3638,
  3639,
  3640,
  3641,
  3642,
  3643,
  3644,
  3645,
  3646,
  3647,
  3648,
  3649,
  3650,
  3651,
  3652,
  3653,
  3654,
  3655,
  3656,
  3657,
  3658,
  3659,
  3660,
  3661,
  3662,
  3663,
  3664,
  3665,
  3666,
  3667,
  3668,
  3669,
  3670,
  3671,
  3672,
  3673,
  3674,
  3675,
  3676,
  3677,
  3678,
  3679,
  3680,
  3681,
  3682,
  3683,
  3684,
  3685,
  3686,
  3687,
  3688,
  3689,
  3690,
  3691,
  3692,
  3693,
  3694,
  3695,
  3696,
  3697,
  3698,
  3699,
  3700,
  3701,
  3702,
  3703,
  3704,
  3705,
  3706,
  3707,
  3708,
  3709,
  3710,
  3711,
  3712,
  3713,
  3714,
  3715,
  3716,
  3717,
  3718,
  3719,
  3720,
  3721,
  3722,
  3723,
  3724,
  3725,
  3726,
  3727,
  3728,
  3729,
  3730,
  3731,
  3732,
  3733,
  3734,
  3735,
  3736,
  3737,
  3738,
  3739,
  3740,
  3741,
  3742,
  3743,
  3744,
  3745,
  3746,
  3747,
  3748,
  3749,
  3750,
  3751,
  3752,
  3753,
  3754,
  3755,
  3756,
  3757,
  3758,
  3759,
  3760,
  3761,
  3762,
  3763,
  3764,
  3765,
  3766,
  3767,
  3768,
  3769,
  3770,
  3771,
  3772,
  3773,
  3774,
  3775,
  3776,
  3777,
  3778,
  3779,
  3780,
  3781,
  3782,
  3783,
  3784,
  3785,
  3786,
  3787,
  3788,
  3789,
  3790,
  3791,
  3792,
  3793,
  3794,
  3795,
  3796,
  3797,
  3798,
  3799,
  3800,
  3801,
  3802,
  3803,
  3804,
  3805,
  3806,
  3807,
  3808,
  3809,
  3810,
  3811,
  3812,
  3813,
  3814,
  3815,
  3816,
  3817,
  3818,
  3819,
  3820,
  3821,
  3822,
  3823,
  3824,
  3825,
  3826,
  3827,
  3828,
  3829,
  3830,
  3831,
  3832,
  3833,
  3834,
  3835,
  3836,
  3837,
  3838,
  3839,
  3840,
  3841,
  3842,
  3843,
  3844,
  3845,
  3846,
  3847,
  3848,
  3849,
  3850,
  3851,
  3852,
  3853,
  3854,
  3855,
  3856,
  3857,
  3858,
  3859,
  3860,
  3861,
  3862,
  3863,
  3864,
  3865,
  3866,
  3867,
  3868,
  3869,
  3870,
  3871,
  3872,
  3873,
  3874,
  3875,
  3876,
  3877,
  3878,
  3879,
  3880,
  3881,
  3882,
  3883,
  3884,
  3885,
  3886,
  3887,
  3888,
  3889,
  3890,
  3891,
  3892,
  3893,
  3894,
  3895,
  3896,
  3897,
  3898,
  3899,
  3900,
  3901,
  3902,
  3903,
  3904,
  3905,
  3906,
  3907,
  3908,
  3909,
  3910,
  3911,
  3912,
  3913,
  3914,
  3915,
  3916,
  3917,
  3918,
  3919,
  3920,
  3921,
  3922,
  3923,
  3924,
  3925,
  3926,
  3927,
  3928,
  3929,
  3930,
  3931,
  3932,
  3933,
  3934,
  3935,
  3936,
  3937,
  3938,
  3939,
  3940,
  3941,
  3942,
  3943,
  3944,
  3945,
  3946,
  3947,
  3948,
  3949,
  3950,
  3951,
  3952,
  3953,
  3954,
  3955,
  3956,
  3957,
  3958,
  3959,
  3960,
  3961,
  3962,
  3963,
  3964,
  3965,
  3966,
  3967,
  3968,
  3969,
  3970,
  3971,
  3972,
  3973,
  3974,
  3975,
  3976,
  3977,
  3978,
  3979,
  3980,
  3981,
  3982,
  3983,
  3984,
  3985,
  3986,
  3987,
  3988,
  3989,
  3990,
  3991,
  3992,
  3993,
  3994,
  3995,
  3996,
  3997,
  3998,
  3999,
  4000,
  4001,
  4002,
  4003,
  4004,
  4005,
  4006,
  4007,
  4008,
  4009,
  4010,
  4011,
  4012,
  4013,
  4014,
  4015,
  4016,
  4017,
  4018,
  4019,
  4020,
  4021,
  4022,
  4023,
  4024,
  4025,
  4026,
  4027,
  4028,
  4029,
  4030,
  4031,
  4032,
  4033,
  4034,
  4035,
  4036,
  4037,
  4038,
  4039,
  4040,
  4041,
  4042,
  4043,
  4044,
  4045,
  4046,
  4047,
  4048,
  4049,
  4050,
  4051,
  4052,
  4053,
  4054,
  4055,
  4056,
  4057,
  4058,
  4059,
  4060,
  4061,
  4062,
  4063,
  4064,
  4065,
  4066,
  4067,
  4068,
  4069,
  4070,
  4071,
  4072,
  4073,
  4074,
  4075,
  4076,
  4077,
  4078,
  4079,
  4080,
  4081,
  4082,
  4083,
  4084,
  4085,
  4086,
  4087,
  4088,
  4089,
  4090,
  4091,
  4092,
  4093,
  4094,
  4095,
  4096,
  4097,
  4098,
  4099,
  4100,
  4101,
  ...],
 2018: [4759,
  4760,
  4761,
  4762,
  4763,
  4764,
  4765,
  4766,
  4767,
  4768,
  4769,
  4770,
  4771,
  4772,
  4773,
  4774,
  4775,
  4776,
  4777,
  4778,
  4779,
  4780,
  4781,
  4782,
  4783,
  4784,
  4785,
  4786,
  4787,
  4788,
  4789,
  4790,
  4791,
  4792,
  4793,
  4794,
  4795,
  4796,
  4797,
  4798,
  4799,
  4800,
  4801,
  4802,
  4803,
  4804,
  4805,
  4806,
  4807,
  4808,
  4809,
  4810,
  4811,
  4812,
  4813,
  4814,
  4815,
  4816,
  4817,
  4818,
  4819,
  4820,
  4821,
  4822,
  4823,
  4824,
  4825,
  4826,
  4827,
  4828,
  4829,
  4830,
  4831,
  4832,
  4833,
  4834,
  4835,
  4836,
  4837,
  4838,
  4839,
  4840,
  4841,
  4842,
  4843,
  4844,
  4845,
  4846,
  4847,
  4848,
  4849,
  4850,
  4851,
  4852,
  4853,
  4854,
  4855,
  4856,
  4857,
  4858,
  4859,
  4860,
  4861,
  4862,
  4863,
  4864,
  4865,
  4866,
  4867,
  4868,
  4869,
  4870,
  4871,
  4872,
  4873,
  4874,
  4875,
  4876,
  4877,
  4878,
  4879,
  4880,
  4881,
  4882,
  4883,
  4884,
  4885,
  4886,
  4887,
  4888,
  4889,
  4890,
  4891,
  4892,
  4893,
  4894,
  4895,
  4896,
  4897,
  4898,
  4899,
  4900,
  4901,
  4902,
  4903,
  4904,
  4905,
  4906,
  4907,
  4908,
  4909,
  4910,
  4911,
  4912,
  4913,
  4914,
  4915,
  4916,
  4917,
  4918,
  4919,
  4920,
  4921,
  4922,
  4923,
  4924,
  4925,
  4926,
  4927,
  4928,
  4929,
  4930,
  4931,
  4932,
  4933,
  4934,
  4935,
  4936,
  4937,
  4938,
  4939,
  4940,
  4941,
  4942,
  4943,
  4944,
  4945,
  4946,
  4947,
  4948,
  4949,
  4950,
  4951,
  4952,
  4953,
  4954,
  4955,
  4956,
  4957,
  4958,
  4959,
  4960,
  4961,
  4962,
  4963,
  4964,
  4965,
  4966,
  4967,
  4968,
  4969,
  4970,
  4971,
  4972,
  4973,
  4974,
  4975,
  4976,
  4977,
  4978,
  4979,
  4980,
  4981,
  4982,
  4983,
  4984,
  4985,
  4986,
  4987,
  4988,
  4989,
  4990,
  4991,
  4992,
  4993,
  4994,
  4995,
  4996,
  4997,
  4998,
  4999,
  5000,
  5001,
  5002,
  5003,
  5004,
  5005,
  5006,
  5007,
  5008,
  5009,
  5010,
  5011,
  5012,
  5013,
  5014,
  5015,
  5016,
  5017,
  5018,
  5019,
  5020,
  5021,
  5022,
  5023,
  5024,
  5025,
  5026,
  5027,
  5028,
  5029,
  5030,
  5031,
  5032,
  5033,
  5034,
  5035,
  5036,
  5037,
  5038,
  5039,
  5040,
  5041,
  5042,
  5043,
  5044,
  5045,
  5046,
  5047,
  5048,
  5049,
  5050,
  5051,
  5052,
  5053,
  5054,
  5055,
  5056,
  5057,
  5058,
  5059,
  5060,
  5061,
  5062,
  5063,
  5064,
  5065,
  5066,
  5067,
  5068,
  5069,
  5070,
  5071,
  5072,
  5073,
  5074,
  5075,
  5076,
  5077,
  5078,
  5079,
  5080,
  5081,
  5082,
  5083,
  5084,
  5085,
  5086,
  5087,
  5088,
  5089,
  5090,
  5091,
  5092,
  5093,
  5094,
  5095,
  5096,
  5097,
  5098,
  5099,
  5100,
  5101,
  5102,
  5103,
  5104,
  5105,
  5106,
  5107,
  5108,
  5109,
  5110,
  5111,
  5112,
  5113,
  5114,
  5115,
  5116,
  5117,
  5118,
  5119,
  5120,
  5121,
  5122,
  5123,
  5124,
  5125,
  5126,
  5127,
  5128,
  5129,
  5130,
  5131,
  5132,
  5133,
  5134,
  5135,
  5136,
  5137,
  5138,
  5139,
  5140,
  5141,
  5142,
  5143,
  5144,
  5145,
  5146,
  5147,
  5148,
  5149,
  5150,
  5151,
  5152,
  5153,
  5154,
  5155,
  5156,
  5157,
  5158,
  5159,
  5160,
  5161,
  5162,
  5163,
  5164,
  5165,
  5166,
  5167,
  5168,
  5169,
  5170,
  5171,
  5172,
  5173,
  5174,
  5175,
  5176,
  5177,
  5178,
  5179,
  5180,
  5181,
  5182,
  5183,
  5184,
  5185,
  5186,
  5187,
  5188,
  5189,
  5190,
  5191,
  5192,
  5193,
  5194,
  5195,
  5196,
  5197,
  5198,
  5199,
  5200,
  5201,
  5202,
  5203,
  5204,
  5205,
  5206,
  5207,
  5208,
  5209,
  5210,
  5211,
  5212,
  5213,
  5214,
  5215,
  5216,
  5217,
  5218,
  5219,
  5220,
  5221,
  5222,
  5223,
  5224,
  5225,
  5226,
  5227,
  5228,
  5229,
  5230,
  5231,
  5232,
  5233,
  5234,
  5235,
  5236,
  5237,
  5238,
  5239,
  5240,
  5241,
  5242,
  5243,
  5244,
  5245,
  5246,
  5247,
  5248,
  5249,
  5250,
  5251,
  5252,
  5253,
  5254,
  5255,
  5256,
  5257,
  5258,
  5259,
  5260,
  5261,
  5262,
  5263,
  5264,
  5265,
  5266,
  5267,
  5268,
  5269,
  5270,
  5271,
  5272,
  5273,
  5274,
  5275,
  5276,
  5277,
  5278,
  5279,
  5280,
  5281,
  5282,
  5283,
  5284,
  5285,
  5286,
  5287,
  5288,
  5289,
  5290,
  5291,
  5292,
  5293,
  5294,
  5295,
  5296,
  5297,
  5298,
  5299,
  5300,
  5301,
  5302,
  5303,
  5304,
  5305,
  5306,
  5307,
  5308,
  5309,
  5310,
  5311,
  5312,
  5313,
  5314,
  5315,
  5316,
  5317,
  5318,
  5319,
  5320,
  5321,
  5322,
  5323,
  5324,
  5325,
  5326,
  5327,
  5328,
  5329,
  5330,
  5331,
  5332,
  5333,
  5334,
  5335,
  5336,
  5337,
  5338,
  5339,
  5340,
  5341,
  5342,
  5343,
  5344,
  5345,
  5346,
  5347,
  5348,
  5349,
  5350,
  5351,
  5352,
  5353,
  5354,
  5355,
  5356,
  5357,
  5358,
  5359,
  5360,
  5361,
  5362,
  5363,
  5364,
  5365,
  5366,
  5367,
  5368,
  5369,
  5370,
  5371,
  5372,
  5373,
  5374,
  5375,
  5376,
  5377,
  5378,
  5379,
  5380,
  5381,
  5382,
  5383,
  5384,
  5385,
  5386,
  5387,
  5388,
  5389,
  5390,
  5391,
  5392,
  5393,
  5394,
  5395,
  5396,
  5397,
  5398,
  5399,
  5400,
  5401,
  5402,
  5403,
  5404,
  5405,
  5406,
  5407,
  5408,
  5409,
  5410,
  5411,
  5412,
  5413,
  5414,
  5415,
  5416,
  5417,
  5418,
  5419,
  5420,
  5421,
  5422,
  5423,
  5424,
  5425,
  5426,
  5427,
  5428,
  5429,
  5430,
  5431,
  5432,
  5433,
  5434,
  5435,
  5436,
  5437,
  5438,
  5439,
  5440,
  5441,
  5442,
  5443,
  5444,
  5445,
  5446,
  5447,
  5448,
  5449,
  5450,
  5451,
  5452,
  5453,
  5454,
  5455,
  5456,
  5457,
  5458,
  5459,
  5460,
  5461,
  5462,
  5463,
  5464,
  5465,
  5466,
  5467,
  5468,
  5469,
  5470,
  5471,
  5472,
  5473,
  5474,
  5475,
  5476,
  5477,
  5478,
  5479,
  5480,
  5481,
  5482,
  5483,
  5484,
  5485,
  5486,
  5487,
  5488,
  5489,
  5490,
  5491,
  5492,
  5493,
  5494,
  5495,
  5496,
  5497,
  5498,
  5499,
  5500,
  5501,
  5502,
  5503,
  5504,
  5505,
  5506,
  5507,
  5508,
  5509,
  5510,
  5511,
  5512,
  5513,
  5514,
  5515,
  5516,
  5517,
  5518,
  5519,
  5520,
  5521,
  5522,
  5523,
  5524,
  5525,
  5526,
  5527,
  5528,
  5529,
  5530,
  5531,
  5532,
  5533,
  5534,
  5535,
  5536,
  5537,
  5538,
  5539,
  5540,
  5541,
  5542,
  5543,
  5544,
  5545,
  5546,
  5547,
  5548,
  5549,
  5550,
  5551,
  5552,
  5553,
  5554,
  5555,
  5556,
  5557,
  5558,
  5559,
  5560,
  5561,
  5562,
  5563,
  5564,
  5565,
  5566,
  5567,
  5568,
  5569,
  5570,
  5571,
  5572,
  5573,
  5574,
  5575,
  5576,
  5577,
  5578,
  5579,
  5580,
  5581,
  5582,
  5583,
  5584,
  5585,
  5586,
  5587,
  5588,
  5589,
  5590,
  5591,
  5592,
  5593,
  5594,
  5595,
  5596,
  5597,
  5598,
  5599,
  5600,
  5601,
  5602,
  5603,
  5604,
  5605,
  5606,
  5607,
  5608,
  5609,
  5610,
  5611,
  5612,
  5613,
  5614,
  5615,
  5616,
  5617,
  5618,
  5619,
  5620,
  5621,
  5622,
  5623,
  5624,
  5625,
  5626,
  5627,
  5628,
  5629,
  5630,
  5631,
  5632,
  5633,
  5634,
  5635,
  5636,
  5637,
  5638,
  5639,
  5640,
  5641,
  5642,
  5643,
  5644,
  5645,
  5646,
  5647,
  5648,
  5649,
  5650,
  5651,
  5652,
  5653,
  5654,
  5655,
  5656,
  5657,
  5658,
  5659,
  5660,
  5661,
  5662,
  5663,
  5664,
  5665,
  5666,
  5667,
  5668,
  5669,
  5670,
  5671,
  5672,
  5673,
  5674,
  5675,
  5676,
  5677,
  5678,
  5679,
  5680,
  5681,
  5682,
  5683,
  5684,
  5685,
  5686,
  5687,
  5688,
  5689,
  5690,
  5691,
  5692,
  5693,
  5694,
  5695,
  5696,
  5697,
  5698,
  5699,
  5700,
  5701,
  5702,
  5703,
  5704,
  5705,
  5706,
  5707,
  5708,
  5709,
  5710,
  5711,
  5712,
  5713,
  5714,
  5715,
  5716,
  5717,
  5718,
  5719,
  5720,
  5721,
  5722,
  5723,
  5724,
  5725,
  5726,
  5727,
  5728,
  5729,
  5730,
  5731,
  5732,
  5733,
  5734,
  5735,
  5736,
  5737,
  5738,
  5739,
  5740,
  5741,
  5742,
  5743,
  5744,
  5745,
  5746,
  5747,
  5748,
  5749,
  5750,
  5751,
  5752,
  5753,
  5754,
  5755,
  5756,
  5757,
  5758,
  ...],
 2019: [7612,
  7613,
  7614,
  7615,
  7616,
  7617,
  7618,
  7619,
  7620,
  7621,
  7622,
  7623,
  7624,
  7625,
  7626,
  7627,
  7628,
  7629,
  7630,
  7631,
  7632,
  7633,
  7634,
  7635,
  7636,
  7637,
  7638,
  7639,
  7640,
  7641,
  7642,
  7643,
  7644,
  7645,
  7646,
  7647,
  7648,
  7649,
  7650,
  7651,
  7652,
  7653,
  7654,
  7655,
  7656,
  7657,
  7658,
  7659,
  7660,
  7661,
  7662,
  7663,
  7664,
  7665,
  7666,
  7667,
  7668,
  7669,
  7670,
  7671,
  7672,
  7673,
  7674,
  7675,
  7676,
  7677,
  7678,
  7679,
  7680,
  7681,
  7682,
  7683,
  7684,
  7685,
  7686,
  7687,
  7688,
  7689,
  7690,
  7691,
  7692,
  7693,
  7694,
  7695,
  7696,
  7697,
  7698,
  7699,
  7700,
  7701,
  7702,
  7703,
  7704,
  7705,
  7706,
  7707,
  7708,
  7709,
  7710,
  7711,
  7712,
  7713,
  7714,
  7715,
  7716,
  7717,
  7718,
  7719,
  7720,
  7721,
  7722,
  7723,
  7724,
  7725,
  7726,
  7727,
  7728,
  7729,
  7730,
  7731,
  7732,
  7733,
  7734,
  7735,
  7736,
  7737,
  7738,
  7739,
  7740,
  7741,
  7742,
  7743,
  7744,
  7745,
  7746,
  7747,
  7748,
  7749,
  7750,
  7751,
  7752,
  7753,
  7754,
  7755,
  7756,
  7757,
  7758,
  7759,
  7760,
  7761,
  7762,
  7763,
  7764,
  7765,
  7766,
  7767,
  7768,
  7769,
  7770,
  7771,
  7772,
  7773,
  7774,
  7775,
  7776,
  7777,
  7778,
  7779,
  7780,
  7781,
  7782,
  7783,
  7784,
  7785,
  7786,
  7787,
  7788,
  7789,
  7790,
  7791,
  7792,
  7793,
  7794,
  7795,
  7796,
  7797,
  7798,
  7799,
  7800,
  7801,
  7802,
  7803,
  7804,
  7805,
  7806,
  7807,
  7808,
  7809,
  7810,
  7811,
  7812,
  7813,
  7814,
  7815,
  7816,
  7817,
  7818,
  7819,
  7820,
  7821,
  7822,
  7823,
  7824,
  7825,
  7826,
  7827,
  7828,
  7829,
  7830,
  7831,
  7832,
  7833,
  7834,
  7835,
  7836,
  7837,
  7838,
  7839,
  7840,
  7841,
  7842,
  7843,
  7844,
  7845,
  7846,
  7847,
  7848,
  7849,
  7850,
  7851,
  7852,
  7853,
  7854,
  7855,
  7856,
  7857,
  7858,
  7859,
  7860,
  7861,
  7862,
  7863,
  7864,
  7865,
  7866,
  7867,
  7868,
  7869,
  7870,
  7871,
  7872,
  7873,
  7874,
  7875,
  7876,
  7877,
  7878,
  7879,
  7880,
  7881,
  7882,
  7883,
  7884,
  7885,
  7886,
  7887,
  7888,
  7889,
  7890,
  7891,
  7892,
  7893,
  7894,
  7895,
  7896,
  7897,
  7898,
  7899,
  7900,
  7901,
  7902,
  7903,
  7904,
  7905,
  7906,
  7907,
  7908,
  7909,
  7910,
  7911,
  7912,
  7913,
  7914,
  7915,
  7916,
  7917,
  7918,
  7919,
  7920,
  7921,
  7922,
  7923,
  7924,
  7925,
  7926,
  7927,
  7928,
  7929,
  7930,
  7931,
  7932,
  7933,
  7934,
  7935,
  7936,
  7937,
  7938,
  7939,
  7940,
  7941,
  7942,
  7943,
  7944,
  7945,
  7946,
  7947,
  7948,
  7949,
  7950,
  7951,
  7952,
  7953,
  7954,
  7955,
  7956,
  7957,
  7958,
  7959,
  7960,
  7961,
  7962,
  7963,
  7964,
  7965,
  7966,
  7967,
  7968,
  7969,
  7970,
  7971,
  7972,
  7973,
  7974,
  7975,
  7976,
  7977,
  7978,
  7979,
  7980,
  7981,
  7982,
  7983,
  7984,
  7985,
  7986,
  7987,
  7988,
  7989,
  7990,
  7991,
  7992,
  7993,
  7994,
  7995,
  7996,
  7997,
  7998,
  7999,
  8000,
  8001,
  8002,
  8003,
  8004,
  8005,
  8006,
  8007,
  8008,
  8009,
  8010,
  8011,
  8012,
  8013,
  8014,
  8015,
  8016,
  8017,
  8018,
  8019,
  8020,
  8021,
  8022,
  8023,
  8024,
  8025,
  8026,
  8027,
  8028,
  8029,
  8030,
  8031,
  8032,
  8033,
  8034,
  8035,
  8036,
  8037,
  8038,
  8039,
  8040,
  8041,
  8042,
  8043,
  8044,
  8045,
  8046,
  8047,
  8048,
  8049,
  8050,
  8051,
  8052,
  8053,
  8054,
  8055,
  8056,
  8057,
  8058,
  8059,
  8060,
  8061,
  8062,
  8063,
  8064,
  8065,
  8066,
  8067,
  8068,
  8069,
  8070,
  8071,
  8072,
  8073,
  8074,
  8075,
  8076,
  8077,
  8078,
  8079,
  8080,
  8081,
  8082,
  8083,
  8084,
  8085,
  8086,
  8087,
  8088,
  8089,
  8090,
  8091,
  8092,
  8093,
  8094,
  8095,
  8096,
  8097,
  8098,
  8099,
  8100,
  8101,
  8102,
  8103,
  8104,
  8105,
  8106,
  8107,
  8108,
  8109,
  8110,
  8111,
  8112,
  8113,
  8114,
  8115,
  8116,
  8117,
  8118,
  8119,
  8120,
  8121,
  8122,
  8123,
  8124,
  8125,
  8126,
  8127,
  8128,
  8129,
  8130,
  8131,
  8132,
  8133,
  8134,
  8135,
  8136,
  8137,
  8138,
  8139,
  8140,
  8141,
  8142,
  8143,
  8144,
  8145,
  8146,
  8147,
  8148,
  8149,
  8150,
  8151,
  8152,
  8153,
  8154,
  8155,
  8156,
  8157,
  8158,
  8159,
  8160,
  8161,
  8162,
  8163,
  8164,
  8165,
  8166,
  8167,
  8168,
  8169,
  8170,
  8171,
  8172,
  8173,
  8174,
  8175,
  8176,
  8177,
  8178,
  8179,
  8180,
  8181,
  8182,
  8183,
  8184,
  8185,
  8186,
  8187,
  8188,
  8189,
  8190,
  8191,
  8192,
  8193,
  8194,
  8195,
  8196,
  8197,
  8198,
  8199,
  8200,
  8201,
  8202,
  8203,
  8204,
  8205,
  8206,
  8207,
  8208,
  8209,
  8210,
  8211,
  8212,
  8213,
  8214,
  8215,
  8216,
  8217,
  8218,
  8219,
  8220,
  8221,
  8222,
  8223,
  8224,
  8225,
  8226,
  8227,
  8228,
  8229,
  8230,
  8231,
  8232,
  8233,
  8234,
  8235,
  8236,
  8237,
  8238,
  8239,
  8240,
  8241,
  8242,
  8243,
  8244,
  8245,
  8246,
  8247,
  8248,
  8249,
  8250,
  8251,
  8252,
  8253,
  8254,
  8255,
  8256,
  8257,
  8258,
  8259,
  8260,
  8261,
  8262,
  8263,
  8264,
  8265,
  8266,
  8267,
  8268,
  8269,
  8270,
  8271,
  8272,
  8273,
  8274,
  8275,
  8276,
  8277,
  8278,
  8279,
  8280,
  8281,
  8282,
  8283,
  8284,
  8285,
  8286,
  8287,
  8288,
  8289,
  8290,
  8291,
  8292,
  8293,
  8294,
  8295,
  8296,
  8297,
  8298,
  8299,
  8300,
  8301,
  8302,
  8303,
  8304,
  8305,
  8306,
  8307,
  8308,
  8309,
  8310,
  8311,
  8312,
  8313,
  8314,
  8315,
  8316,
  8317,
  8318,
  8319,
  8320,
  8321,
  8322,
  8323,
  8324,
  8325,
  8326,
  8327,
  8328,
  8329,
  8330,
  8331,
  8332,
  8333,
  8334,
  8335,
  8336,
  8337,
  8338,
  8339,
  8340,
  8341,
  8342,
  8343,
  8344,
  8345,
  8346,
  8347,
  8348,
  8349,
  8350,
  8351,
  8352,
  8353,
  8354,
  8355,
  8356,
  8357,
  8358,
  8359,
  8360,
  8361,
  8362,
  8363,
  8364,
  8365,
  8366,
  8367,
  8368,
  8369,
  8370,
  8371,
  8372,
  8373,
  8374,
  8375,
  8376,
  8377,
  8378,
  8379,
  8380,
  8381,
  8382,
  8383,
  8384,
  8385,
  8386,
  8387,
  8388,
  8389,
  8390,
  8391,
  8392,
  8393,
  8394,
  8395,
  8396,
  8397,
  8398,
  8399,
  8400,
  8401,
  8402,
  8403,
  8404,
  8405,
  8406,
  8407,
  8408,
  8409,
  8410,
  8411,
  8412,
  8413,
  8414,
  8415,
  8416,
  8417,
  8418,
  8419,
  8420,
  8421,
  8422,
  8423,
  8424,
  8425,
  8426,
  8427,
  8428,
  8429,
  8430,
  8431,
  8432,
  8433,
  8434,
  8435,
  8436,
  8437,
  8438,
  8439,
  8440,
  8441,
  8442,
  8443,
  8444,
  8445,
  8446,
  8447,
  8448,
  8449,
  8450,
  8451,
  8452,
  8453,
  8454,
  8455,
  8456,
  8457,
  8458,
  8459,
  8460,
  8461,
  8462,
  8463,
  8464,
  8465,
  8466,
  8467,
  8468,
  8469,
  8470,
  8471,
  8472,
  8473,
  8474,
  8475,
  8476,
  8477,
  8478,
  8479,
  8480,
  8481,
  8482,
  8483,
  8484,
  8485,
  8486,
  8487,
  8488,
  8489,
  8490,
  8491,
  8492,
  8493,
  8494,
  8495,
  8496,
  8497,
  8498,
  8499,
  8500,
  8501,
  8502,
  8503,
  8504,
  8505,
  8506,
  8507,
  8508,
  8509,
  8510,
  8511,
  8512,
  8513,
  8514,
  8515,
  8516,
  8517,
  8518,
  8519,
  8520,
  8521,
  8522,
  8523,
  8524,
  8525,
  8526,
  8527,
  8528,
  8529,
  8530,
  8531,
  8532,
  8533,
  8534,
  8535,
  8536,
  8537,
  8538,
  8539,
  8540,
  8541,
  8542,
  8543,
  8544,
  8545,
  8546,
  8547,
  8548,
  8549,
  8550,
  8551,
  8552,
  8553,
  8554,
  8555,
  8556,
  8557,
  8558,
  8559,
  8560,
  8561,
  8562,
  8563,
  8564,
  8565,
  8566,
  8567,
  8568,
  8569,
  8570,
  8571,
  8572,
  8573,
  8574,
  8575,
  8576,
  8577,
  8578,
  8579,
  8580,
  8581,
  8582,
  8583,
  8584,
  8585,
  8586,
  8587,
  8588,
  8589,
  8590,
  8591,
  8592,
  8593,
  8594,
  8595,
  8596,
  8597,
  8598,
  8599,
  8600,
  8601,
  8602,
  8603,
  8604,
  8605,
  8606,
  8607,
  8608,
  8609,
  8610,
  8611,
  ...],
 2020: [10660,
  10661,
  10662,
  10663,
  10664,
  10665,
  10666,
  10667,
  10668,
  10669,
  10670,
  10671,
  10672,
  10673,
  10674,
  10675,
  10676,
  10677,
  10678,
  10679,
  10680,
  10681,
  10682,
  10683,
  10684,
  10685,
  10686,
  10687,
  10688,
  10689,
  10690,
  10691,
  10692,
  10693,
  10694,
  10695,
  10696,
  10697,
  10698,
  10699,
  10700,
  10701,
  10702,
  10703,
  10704,
  10705,
  10706,
  10707,
  10708,
  10709,
  10710,
  10711,
  10712,
  10713,
  10714,
  10715,
  10716,
  10717,
  10718,
  10719,
  10720,
  10721,
  10722,
  10723,
  10724,
  10725,
  10726,
  10727,
  10728,
  10729,
  10730,
  10731,
  10732,
  10733,
  10734,
  10735,
  10736,
  10737,
  10738,
  10739,
  10740,
  10741,
  10742,
  10743,
  10744,
  10745,
  10746,
  10747,
  10748,
  10749,
  10750,
  10751,
  10752,
  10753,
  10754,
  10755,
  10756,
  10757,
  10758,
  10759,
  10760,
  10761,
  10762,
  10763,
  10764,
  10765,
  10766,
  10767,
  10768,
  10769,
  10770,
  10771,
  10772,
  10773,
  10774,
  10775,
  10776,
  10777,
  10778,
  10779,
  10780,
  10781,
  10782,
  10783,
  10784,
  10785,
  10786,
  10787,
  10788,
  10789,
  10790,
  10791,
  10792,
  10793,
  10794,
  10795,
  10796,
  10797,
  10798,
  10799,
  10800,
  10801,
  10802,
  10803,
  10804,
  10805,
  10806,
  10807,
  10808,
  10809,
  10810,
  10811,
  10812,
  10813,
  10814,
  10815,
  10816,
  10817,
  10818,
  10819,
  10820,
  10821,
  10822,
  10823,
  10824,
  10825,
  10826,
  10827,
  10828,
  10829,
  10830,
  10831,
  10832,
  10833,
  10834,
  10835,
  10836,
  10837,
  10838,
  10839,
  10840,
  10841,
  10842,
  10843,
  10844,
  10845,
  10846,
  10847,
  10848,
  10849,
  10850,
  10851,
  10852,
  10853,
  10854,
  10855,
  10856,
  10857,
  10858,
  10859,
  10860,
  10861,
  10862,
  10863,
  10864,
  10865,
  10866,
  10867,
  10868,
  10869,
  10870,
  10871,
  10872,
  10873,
  10874,
  10875,
  10876,
  10877,
  10878,
  10879,
  10880,
  10881,
  10882,
  10883,
  10884,
  10885,
  10886,
  10887,
  10888,
  10889,
  10890,
  10891,
  10892,
  10893,
  10894,
  10895,
  10896,
  10897,
  10898,
  10899,
  10900,
  10901,
  10902,
  10903,
  10904,
  10905,
  10906,
  10907,
  10908,
  10909,
  10910,
  10911,
  10912,
  10913,
  10914,
  10915,
  10916,
  10917,
  10918,
  10919,
  10920,
  10921,
  10922,
  10923,
  10924,
  10925,
  10926,
  10927,
  10928,
  10929,
  10930,
  10931,
  10932,
  10933,
  10934,
  10935,
  10936,
  10937,
  10938,
  10939,
  10940,
  10941,
  10942,
  10943,
  10944,
  10945,
  10946,
  10947,
  10948,
  10949,
  10950,
  10951,
  10952,
  10953,
  10954,
  10955,
  10956,
  10957,
  10958,
  10959,
  10960,
  10961,
  10962,
  10963,
  10964,
  10965,
  10966,
  10967,
  10968,
  10969,
  10970,
  10971,
  10972,
  10973,
  10974,
  10975,
  10976,
  10977,
  10978,
  10979,
  10980,
  10981,
  10982,
  10983,
  10984,
  10985,
  10986,
  10987,
  10988,
  10989,
  10990,
  10991,
  10992,
  10993,
  10994,
  10995,
  10996,
  10997,
  10998,
  10999,
  11000,
  11001,
  11002,
  11003,
  11004,
  11005,
  11006,
  11007,
  11008,
  11009,
  11010,
  11011,
  11012,
  11013,
  11014,
  11015,
  11016,
  11017,
  11018,
  11019,
  11020,
  11021,
  11022,
  11023,
  11024,
  11025,
  11026,
  11027,
  11028,
  11029,
  11030,
  11031,
  11032,
  11033,
  11034,
  11035,
  11036,
  11037,
  11038,
  11039,
  11040,
  11041,
  11042,
  11043,
  11044,
  11045,
  11046,
  11047,
  11048,
  11049,
  11050,
  11051,
  11052,
  11053,
  11054,
  11055,
  11056,
  11057,
  11058,
  11059,
  11060,
  11061,
  11062,
  11063,
  11064,
  11065,
  11066,
  11067,
  11068,
  11069,
  11070,
  11071,
  11072,
  11073,
  11074,
  11075,
  11076,
  11077,
  11078,
  11079,
  11080,
  11081,
  11082,
  11083,
  11084,
  11085,
  11086,
  11087,
  11088,
  11089,
  11090,
  11091,
  11092,
  11093,
  11094,
  11095,
  11096,
  11097,
  11098,
  11099,
  11100,
  11101,
  11102,
  11103,
  11104,
  11105,
  11106,
  11107,
  11108,
  11109,
  11110,
  11111,
  11112,
  11113,
  11114,
  11115,
  11116,
  11117,
  11118,
  11119,
  11120,
  11121,
  11122,
  11123,
  11124,
  11125,
  11126,
  11127,
  11128,
  11129,
  11130,
  11131,
  11132,
  11133,
  11134,
  11135,
  11136,
  11137,
  11138,
  11139,
  11140,
  11141,
  11142,
  11143,
  11144,
  11145,
  11146,
  11147,
  11148,
  11149,
  11150,
  11151,
  11152,
  11153,
  11154,
  11155,
  11156,
  11157,
  11158,
  11159,
  11160,
  11161,
  11162,
  11163,
  11164,
  11165,
  11166,
  11167,
  11168,
  11169,
  11170,
  11171,
  11172,
  11173,
  11174,
  11175,
  11176,
  11177,
  11178,
  11179,
  11180,
  11181,
  11182,
  11183,
  11184,
  11185,
  11186,
  11187,
  11188,
  11189,
  11190,
  11191,
  11192,
  11193,
  11194,
  11195,
  11196,
  11197,
  11198,
  11199,
  11200,
  11201,
  11202,
  11203,
  11204,
  11205,
  11206,
  11207,
  11208,
  11209,
  11210,
  11211,
  11212,
  11213,
  11214,
  11215,
  11216,
  11217,
  11218,
  11219,
  11220,
  11221,
  11222,
  11223,
  11224,
  11225,
  11226,
  11227,
  11228,
  11229,
  11230,
  11231,
  11232,
  11233,
  11234,
  11235,
  11236,
  11237,
  11238,
  11239,
  11240,
  11241,
  11242,
  11243,
  11244,
  11245,
  11246,
  11247,
  11248,
  11249,
  11250,
  11251,
  11252,
  11253,
  11254,
  11255,
  11256,
  11257,
  11258,
  11259,
  11260,
  11261,
  11262,
  11263,
  11264,
  11265,
  11266,
  11267,
  11268,
  11269,
  11270,
  11271,
  11272,
  11273,
  11274,
  11275,
  11276,
  11277,
  11278,
  11279,
  11280,
  11281,
  11282,
  11283,
  11284,
  11285,
  11286,
  11287,
  11288,
  11289,
  11290,
  11291,
  11292,
  11293,
  11294,
  11295,
  11296,
  11297,
  11298,
  11299,
  11300,
  11301,
  11302,
  11303,
  11304,
  11305,
  11306,
  11307,
  11308,
  11309,
  11310,
  11311,
  11312,
  11313,
  11314,
  11315,
  11316,
  11317,
  11318,
  11319,
  11320,
  11321,
  11322,
  11323,
  11324,
  11325,
  11326,
  11327,
  11328,
  11329,
  11330,
  11331,
  11332,
  11333,
  11334,
  11335,
  11336,
  11337,
  11338,
  11339,
  11340,
  11341,
  11342,
  11343,
  11344,
  11345,
  11346,
  11347,
  11348,
  11349,
  11350,
  11351,
  11352,
  11353,
  11354,
  11355,
  11356,
  11357,
  11358,
  11359,
  11360,
  11361,
  11362,
  11363,
  11364,
  11365,
  11366,
  11367,
  11368,
  11369,
  11370,
  11371,
  11372,
  11373,
  11374,
  11375,
  11376,
  11377,
  11378,
  11379,
  11380,
  11381,
  11382,
  11383,
  11384,
  11385,
  11386,
  11387,
  11388,
  11389,
  11390,
  11391,
  11392,
  11393,
  11394,
  11395,
  11396,
  11397,
  11398,
  11399,
  11400,
  11401,
  11402,
  11403,
  11404,
  11405,
  11406,
  11407,
  11408,
  11409,
  11410,
  11411,
  11412,
  11413,
  11414,
  11415,
  11416,
  11417,
  11418,
  11419,
  11420,
  11421,
  11422,
  11423,
  11424,
  11425,
  11426,
  11427,
  11428,
  11429,
  11430,
  11431,
  11432,
  11433,
  11434,
  11435,
  11436,
  11437,
  11438,
  11439,
  11440,
  11441,
  11442,
  11443,
  11444,
  11445,
  11446,
  11447,
  11448,
  11449,
  11450,
  11451,
  11452,
  11453,
  11454,
  11455,
  11456,
  11457,
  11458,
  11459,
  11460,
  11461,
  11462,
  11463,
  11464,
  11465,
  11466,
  11467,
  11468,
  11469,
  11470,
  11471,
  11472,
  11473,
  11474,
  11475,
  11476,
  11477,
  11478,
  11479,
  11480,
  11481,
  11482,
  11483,
  11484,
  11485,
  11486,
  11487,
  11488,
  11489,
  11490,
  11491,
  11492,
  11493,
  11494,
  11495,
  11496,
  11497,
  11498,
  11499,
  11500,
  11501,
  11502,
  11503,
  11504,
  11505,
  11506,
  11507,
  11508,
  11509,
  11510,
  11511,
  11512,
  11513,
  11514,
  11515,
  11516,
  11517,
  11518,
  11519,
  11520,
  11521,
  11522,
  11523,
  11524,
  11525,
  11526,
  11527,
  11528,
  11529,
  11530,
  11531,
  11532,
  11533,
  11534,
  11535,
  11536,
  11537,
  11538,
  11539,
  11540,
  11541,
  11542,
  11543,
  11544,
  11545,
  11546,
  11547,
  11548,
  11549,
  11550,
  11551,
  11552,
  11553,
  11554,
  11555,
  11556,
  11557,
  11558,
  11559,
  11560,
  11561,
  11562,
  11563,
  11564,
  11565,
  11566,
  11567,
  11568,
  11569,
  11570,
  11571,
  11572,
  11573,
  11574,
  11575,
  11576,
  11577,
  11578,
  11579,
  11580,
  11581,
  11582,
  11583,
  11584,
  11585,
  11586,
  11587,
  11588,
  11589,
  11590,
  11591,
  11592,
  11593,
  11594,
  11595,
  11596,
  11597,
  11598,
  11599,
  11600,
  11601,
  11602,
  11603,
  11604,
  11605,
  11606,
  11607,
  11608,
  11609,
  11610,
  11611,
  11612,
  11613,
  11614,
  11615,
  11616,
  11617,
  11618,
  11619,
  11620,
  11621,
  11622,
  11623,
  11624,
  11625,
  11626,
  11627,
  11628,
  11629,
  11630,
  11631,
  11632,
  11633,
  11634,
  11635,
  11636,
  11637,
  11638,
  11639,
  11640,
  11641,
  11642,
  11643,
  11644,
  11645,
  11646,
  11647,
  11648,
  11649,
  11650,
  11651,
  11652,
  11653,
  11654,
  11655,
  11656,
  11657,
  11658,
  11659,
  ...],
 2021: [14065,
  14066,
  14067,
  14068,
  14069,
  14070,
  14071,
  14072,
  14073,
  14074,
  14075,
  14076,
  14077,
  14078,
  14079,
  14080,
  14081,
  14082,
  14083,
  14084,
  14085,
  14086,
  14087,
  14088,
  14089,
  14090,
  14091,
  14092,
  14093,
  14094,
  14095,
  14096,
  14097,
  14098,
  14099,
  14100,
  14101,
  14102,
  14103,
  14104,
  14105,
  14106,
  14107,
  14108,
  14109,
  14110,
  14111,
  14112,
  14113,
  14114,
  14115,
  14116,
  14117,
  14118,
  14119,
  14120,
  14121,
  14122,
  14123,
  14124,
  14125,
  14126,
  14127,
  14128,
  14129,
  14130,
  14131,
  14132,
  14133,
  14134,
  14135,
  14136,
  14137,
  14138,
  14139,
  14140,
  14141,
  14142,
  14143,
  14144,
  14145,
  14146,
  14147,
  14148,
  14149,
  14150,
  14151,
  14152,
  14153,
  14154,
  14155,
  14156,
  14157,
  14158,
  14159,
  14160,
  14161,
  14162,
  14163,
  14164,
  14165,
  14166,
  14167,
  14168,
  14169,
  14170,
  14171,
  14172,
  14173,
  14174,
  14175,
  14176,
  14177,
  14178,
  14179,
  14180,
  14181,
  14182,
  14183,
  14184,
  14185,
  14186,
  14187,
  14188,
  14189,
  14190,
  14191,
  14192,
  14193,
  14194,
  14195,
  14196,
  14197,
  14198,
  14199,
  14200,
  14201,
  14202,
  14203,
  14204,
  14205,
  14206,
  14207,
  14208,
  14209,
  14210,
  14211,
  14212,
  14213,
  14214,
  14215,
  14216,
  14217,
  14218,
  14219,
  14220,
  14221,
  14222,
  14223,
  14224,
  14225,
  14226,
  14227,
  14228,
  14229,
  14230,
  14231,
  14232,
  14233,
  14234,
  14235,
  14236,
  14237,
  14238,
  14239,
  14240,
  14241,
  14242,
  14243,
  14244,
  14245,
  14246,
  14247,
  14248,
  14249,
  14250,
  14251,
  14252,
  14253,
  14254,
  14255,
  14256,
  14257,
  14258,
  14259,
  14260,
  14261,
  14262,
  14263,
  14264,
  14265,
  14266,
  14267,
  14268,
  14269,
  14270,
  14271,
  14272,
  14273,
  14274,
  14275,
  14276,
  14277,
  14278,
  14279,
  14280,
  14281,
  14282,
  14283,
  14284,
  14285,
  14286,
  14287,
  14288,
  14289,
  14290,
  14291,
  14292,
  14293,
  14294,
  14295,
  14296,
  14297,
  14298,
  14299,
  14300,
  14301,
  14302,
  14303,
  14304,
  14305,
  14306,
  14307,
  14308,
  14309,
  14310,
  14311,
  14312,
  14313,
  14314,
  14315,
  14316,
  14317,
  14318,
  14319,
  14320,
  14321,
  14322,
  14323,
  14324,
  14325,
  14326,
  14327,
  14328,
  14329,
  14330,
  14331,
  14332,
  14333,
  14334,
  14335,
  14336,
  14337,
  14338,
  14339,
  14340,
  14341,
  14342,
  14343,
  14344,
  14345,
  14346,
  14347,
  14348,
  14349,
  14350,
  14351,
  14352,
  14353,
  14354,
  14355,
  14356,
  14357,
  14358,
  14359,
  14360,
  14361,
  14362,
  14363,
  14364,
  14365,
  14366,
  14367,
  14368,
  14369,
  14370,
  14371,
  14372,
  14373,
  14374,
  14375,
  14376,
  14377,
  14378,
  14379,
  14380,
  14381,
  14382,
  14383,
  14384,
  14385,
  14386,
  14387,
  14388,
  14389,
  14390,
  14391,
  14392,
  14393,
  14394,
  14395,
  14396,
  14397,
  14398,
  14399,
  14400,
  14401,
  14402,
  14403,
  14404,
  14405,
  14406,
  14407,
  14408,
  14409,
  14410,
  14411,
  14412,
  14413,
  14414,
  14415,
  14416,
  14417,
  14418,
  14419,
  14420,
  14421,
  14422,
  14423,
  14424,
  14425,
  14426,
  14427,
  14428,
  14429,
  14430,
  14431,
  14432,
  14433,
  14434,
  14435,
  14436,
  14437,
  14438,
  14439,
  14440,
  14441,
  14442,
  14443,
  14444,
  14445,
  14446,
  14447,
  14448,
  14449,
  14450,
  14451,
  14452,
  14453,
  14454,
  14455,
  14456,
  14457,
  14458,
  14459,
  14460,
  14461,
  14462,
  14463,
  14464,
  14465,
  14466,
  14467,
  14468,
  14469,
  14470,
  14471,
  14472,
  14473,
  14474,
  14475,
  14476,
  14477,
  14478,
  14479,
  14480,
  14481,
  14482,
  14483,
  14484,
  14485,
  14486,
  14487,
  14488,
  14489,
  14490,
  14491,
  14492,
  14493,
  14494,
  14495,
  14496,
  14497,
  14498,
  14499,
  14500,
  14501,
  14502,
  14503,
  14504,
  14505,
  14506,
  14507,
  14508,
  14509,
  14510,
  14511,
  14512,
  14513,
  14514,
  14515,
  14516,
  14517,
  14518,
  14519,
  14520,
  14521,
  14522,
  14523,
  14524,
  14525,
  14526,
  14527,
  14528,
  14529,
  14530,
  14531,
  14532,
  14533,
  14534,
  14535,
  14536,
  14537,
  14538,
  14539,
  14540,
  14541,
  14542,
  14543,
  14544,
  14545,
  14546,
  14547,
  14548,
  14549,
  14550,
  14551,
  14552,
  14553,
  14554,
  14555,
  14556,
  14557,
  14558,
  14559,
  14560,
  14561,
  14562,
  14563,
  14564,
  14565,
  14566,
  14567,
  14568,
  14569,
  14570,
  14571,
  14572,
  14573,
  14574,
  14575,
  14576,
  14577,
  14578,
  14579,
  14580,
  14581,
  14582,
  14583,
  14584,
  14585,
  14586,
  14587,
  14588,
  14589,
  14590,
  14591,
  14592,
  14593,
  14594,
  14595,
  14596,
  14597,
  14598,
  14599,
  14600,
  14601,
  14602,
  14603,
  14604,
  14605,
  14606,
  14607,
  14608,
  14609,
  14610,
  14611,
  14612,
  14613,
  14614,
  14615,
  14616,
  14617,
  14618,
  14619,
  14620,
  14621,
  14622,
  14623,
  14624,
  14625,
  14626,
  14627,
  14628,
  14629,
  14630,
  14631,
  14632,
  14633,
  14634,
  14635,
  14636,
  14637,
  14638,
  14639,
  14640,
  14641,
  14642,
  14643,
  14644,
  14645,
  14646,
  14647,
  14648,
  14649,
  14650,
  14651,
  14652,
  14653,
  14654,
  14655,
  14656,
  14657,
  14658,
  14659,
  14660,
  14661,
  14662,
  14663,
  14664,
  14665,
  14666,
  14667,
  14668,
  14669,
  14670,
  14671,
  14672,
  14673,
  14674,
  14675,
  14676,
  14677,
  14678,
  14679,
  14680,
  14681,
  14682,
  14683,
  14684,
  14685,
  14686,
  14687,
  14688,
  14689,
  14690,
  14691,
  14692,
  14693,
  14694,
  14695,
  14696,
  14697,
  14698,
  14699,
  14700,
  14701,
  14702,
  14703,
  14704,
  14705,
  14706,
  14707,
  14708,
  14709,
  14710,
  14711,
  14712,
  14713,
  14714,
  14715,
  14716,
  14717,
  14718,
  14719,
  14720,
  14721,
  14722,
  14723,
  14724,
  14725,
  14726,
  14727,
  14728,
  14729,
  14730,
  14731,
  14732,
  14733,
  14734,
  14735,
  14736,
  14737,
  14738,
  14739,
  14740,
  14741,
  14742,
  14743,
  14744,
  14745,
  14746,
  14747,
  14748,
  14749,
  14750,
  14751,
  14752,
  14753,
  14754,
  14755,
  14756,
  14757,
  14758,
  14759,
  14760,
  14761,
  14762,
  14763,
  14764,
  14765,
  14766,
  14767,
  14768,
  14769,
  14770,
  14771,
  14772,
  14773,
  14774,
  14775,
  14776,
  14777,
  14778,
  14779,
  14780,
  14781,
  14782,
  14783,
  14784,
  14785,
  14786,
  14787,
  14788,
  14789,
  14790,
  14791,
  14792,
  14793,
  14794,
  14795,
  14796,
  14797,
  14798,
  14799,
  14800,
  14801,
  14802,
  14803,
  14804,
  14805,
  14806,
  14807,
  14808,
  14809,
  14810,
  14811,
  14812,
  14813,
  14814,
  14815,
  14816,
  14817,
  14818,
  14819,
  14820,
  14821,
  14822,
  14823,
  14824,
  14825,
  14826,
  14827,
  14828,
  14829,
  14830,
  14831,
  14832,
  14833,
  14834,
  14835,
  14836,
  14837,
  14838,
  14839,
  14840,
  14841,
  14842,
  14843,
  14844,
  14845,
  14846,
  14847,
  14848,
  14849,
  14850,
  14851,
  14852,
  14853,
  14854,
  14855,
  14856,
  14857,
  14858,
  14859,
  14860,
  14861,
  14862,
  14863,
  14864,
  14865,
  14866,
  14867,
  14868,
  14869,
  14870,
  14871,
  14872,
  14873,
  14874,
  14875,
  14876,
  14877,
  14878,
  14879,
  14880,
  14881,
  14882,
  14883,
  14884,
  14885,
  14886,
  14887,
  14888,
  14889,
  14890,
  14891,
  14892,
  14893,
  14894,
  14895,
  14896,
  14897,
  14898,
  14899,
  14900,
  14901,
  14902,
  14903,
  14904,
  14905,
  14906,
  14907,
  14908,
  14909,
  14910,
  14911,
  14912,
  14913,
  14914,
  14915,
  14916,
  14917,
  14918,
  14919,
  14920,
  14921,
  14922,
  14923,
  14924,
  14925,
  14926,
  14927,
  14928,
  14929,
  14930,
  14931,
  14932,
  14933,
  14934,
  14935,
  14936,
  14937,
  14938,
  14939,
  14940,
  14941,
  14942,
  14943,
  14944,
  14945,
  14946,
  14947,
  14948,
  14949,
  14950,
  14951,
  14952,
  14953,
  14954,
  14955,
  14956,
  14957,
  14958,
  14959,
  14960,
  14961,
  14962,
  14963,
  14964,
  14965,
  14966,
  14967,
  14968,
  14969,
  14970,
  14971,
  14972,
  14973,
  14974,
  14975,
  14976,
  14977,
  14978,
  14979,
  14980,
  14981,
  14982,
  14983,
  14984,
  14985,
  14986,
  14987,
  14988,
  14989,
  14990,
  14991,
  14992,
  14993,
  14994,
  14995,
  14996,
  14997,
  14998,
  14999,
  15000,
  15001,
  15002,
  15003,
  15004,
  15005,
  15006,
  15007,
  15008,
  15009,
  15010,
  15011,
  15012,
  15013,
  15014,
  15015,
  15016,
  15017,
  15018,
  15019,
  15020,
  15021,
  15022,
  15023,
  15024,
  15025,
  15026,
  15027,
  15028,
  15029,
  15030,
  15031,
  15032,
  15033,
  15034,
  15035,
  15036,
  15037,
  15038,
  15039,
  15040,
  15041,
  15042,
  15043,
  15044,
  15045,
  15046,
  15047,
  15048,
  15049,
  15050,
  15051,
  15052,
  15053,
  15054,
  15055,
  15056,
  15057,
  15058,
  15059,
  15060,
  15061,
  15062,
  15063,
  15064,
  ...],
 2022: [19614,
  19615,
  19616,
  19617,
  19618,
  19619,
  19620,
  19621,
  19622,
  19623,
  19624,
  19625,
  19626,
  19627,
  19628,
  19629,
  19630,
  19631,
  19632,
  19633,
  19634,
  19635,
  19636,
  19637,
  19638,
  19639,
  19640,
  19641,
  19642,
  19643,
  19644,
  19645,
  19646,
  19647,
  19648,
  19649,
  19650,
  19651,
  19652,
  19653,
  19654,
  19655,
  19656,
  19657,
  19658,
  19659,
  19660,
  19661,
  19662,
  19663,
  19664,
  19665,
  19666,
  19667,
  19668,
  19669,
  19670,
  19671,
  19672,
  19673,
  19674,
  19675,
  19676,
  19677,
  19678,
  19679,
  19680,
  19681,
  19682,
  19683,
  19684,
  19685,
  19686,
  19687,
  19688,
  19689,
  19690,
  19691,
  19692,
  19693,
  19694,
  19695,
  19696,
  19697,
  19698,
  19699,
  19700,
  19701,
  19702,
  19703,
  19704,
  19705,
  19706,
  19707,
  19708,
  19709,
  19710,
  19711,
  19712,
  19713,
  19714,
  19715,
  19716,
  19717,
  19718,
  19719,
  19720,
  19721,
  19722,
  19723,
  19724,
  19725,
  19726,
  19727,
  19728,
  19729,
  19730,
  19731,
  19732,
  19733,
  19734,
  19735,
  19736,
  19737,
  19738,
  19739,
  19740,
  19741,
  19742,
  19743,
  19744,
  19745,
  19746,
  19747,
  19748,
  19749,
  19750,
  19751,
  19752,
  19753,
  19754,
  19755,
  19756,
  19757,
  19758,
  19759,
  19760,
  19761,
  19762,
  19763,
  19764,
  19765,
  19766,
  19767,
  19768,
  19769,
  19770,
  19771,
  19772,
  19773,
  19774,
  19775,
  19776,
  19777,
  19778,
  19779,
  19780,
  19781,
  19782,
  19783,
  19784,
  19785,
  19786,
  19787,
  19788,
  19789,
  19790,
  19791,
  19792,
  19793,
  19794,
  19795,
  19796,
  19797,
  19798,
  19799,
  19800,
  19801,
  19802,
  19803,
  19804,
  19805,
  19806,
  19807,
  19808,
  19809,
  19810,
  19811,
  19812,
  19813,
  19814,
  19815,
  19816,
  19817,
  19818,
  19819,
  19820,
  19821,
  19822,
  19823,
  19824,
  19825,
  19826,
  19827,
  19828,
  19829,
  19830,
  19831,
  19832,
  19833,
  19834,
  19835,
  19836,
  19837,
  19838,
  19839,
  19840,
  19841,
  19842,
  19843,
  19844,
  19845,
  19846,
  19847,
  19848,
  19849,
  19850,
  19851,
  19852,
  19853,
  19854,
  19855,
  19856,
  19857,
  19858,
  19859,
  19860,
  19861,
  19862,
  19863,
  19864,
  19865,
  19866,
  19867,
  19868,
  19869,
  19870,
  19871,
  19872,
  19873,
  19874,
  19875,
  19876,
  19877,
  19878,
  19879,
  19880,
  19881,
  19882,
  19883,
  19884,
  19885,
  19886,
  19887,
  19888,
  19889,
  19890,
  19891,
  19892,
  19893,
  19894,
  19895,
  19896,
  19897,
  19898,
  19899,
  19900,
  19901,
  19902,
  19903,
  19904,
  19905,
  19906,
  19907,
  19908,
  19909,
  19910,
  19911,
  19912,
  19913,
  19914,
  19915,
  19916,
  19917,
  19918,
  19919,
  19920,
  19921,
  19922,
  19923,
  19924,
  19925,
  19926,
  19927,
  19928,
  19929,
  19930,
  19931,
  19932,
  19933,
  19934,
  19935,
  19936,
  19937,
  19938,
  19939,
  19940,
  19941,
  19942,
  19943,
  19944,
  19945,
  19946,
  19947,
  19948,
  19949,
  19950,
  19951,
  19952,
  19953,
  19954,
  19955,
  19956,
  19957,
  19958,
  19959,
  19960,
  19961,
  19962,
  19963,
  19964,
  19965,
  19966,
  19967,
  19968,
  19969,
  19970,
  19971,
  19972,
  19973,
  19974,
  19975,
  19976,
  19977,
  19978,
  19979,
  19980,
  19981,
  19982,
  19983,
  19984,
  19985,
  19986,
  19987,
  19988,
  19989,
  19990,
  19991,
  19992,
  19993,
  19994,
  19995,
  19996,
  19997,
  19998,
  19999,
  20000,
  20001,
  20002,
  20003,
  20004,
  20005,
  20006,
  20007,
  20008,
  20009,
  20010,
  20011,
  20012,
  20013,
  20014,
  20015,
  20016,
  20017,
  20018,
  20019,
  20020,
  20021,
  20022,
  20023,
  20024,
  20025,
  20026,
  20027,
  20028,
  20029,
  20030,
  20031,
  20032,
  20033,
  20034,
  20035,
  20036,
  20037,
  20038,
  20039,
  20040,
  20041,
  20042,
  20043,
  20044,
  20045,
  20046,
  20047,
  20048,
  20049,
  20050,
  20051,
  20052,
  20053,
  20054,
  20055,
  20056,
  20057,
  20058,
  20059,
  20060,
  20061,
  20062,
  20063,
  20064,
  20065,
  20066,
  20067,
  20068,
  20069,
  20070,
  20071,
  20072,
  20073,
  20074,
  20075,
  20076,
  20077,
  20078,
  20079,
  20080,
  20081,
  20082,
  20083,
  20084,
  20085,
  20086,
  20087,
  20088,
  20089,
  20090,
  20091,
  20092,
  20093,
  20094,
  20095,
  20096,
  20097,
  20098,
  20099,
  20100,
  20101,
  20102,
  20103,
  20104,
  20105,
  20106,
  20107,
  20108,
  20109,
  20110,
  20111,
  20112,
  20113,
  20114,
  20115,
  20116,
  20117,
  20118,
  20119,
  20120,
  20121,
  20122,
  20123,
  20124,
  20125,
  20126,
  20127,
  20128,
  20129,
  20130,
  20131,
  20132,
  20133,
  20134,
  20135,
  20136,
  20137,
  20138,
  20139,
  20140,
  20141,
  20142,
  20143,
  20144,
  20145,
  20146,
  20147,
  20148,
  20149,
  20150,
  20151,
  20152,
  20153,
  20154,
  20155,
  20156,
  20157,
  20158,
  20159,
  20160,
  20161,
  20162,
  20163,
  20164,
  20165,
  20166,
  20167,
  20168,
  20169,
  20170,
  20171,
  20172,
  20173,
  20174,
  20175,
  20176,
  20177,
  20178,
  20179,
  20180,
  20181,
  20182,
  20183,
  20184,
  20185,
  20186,
  20187,
  20188,
  20189,
  20190,
  20191,
  20192,
  20193,
  20194,
  20195,
  20196,
  20197,
  20198,
  20199,
  20200,
  20201,
  20202,
  20203,
  20204,
  20205,
  20206,
  20207,
  20208,
  20209,
  20210,
  20211,
  20212,
  20213,
  20214,
  20215,
  20216,
  20217,
  20218,
  20219,
  20220,
  20221,
  20222,
  20223,
  20224,
  20225,
  20226,
  20227,
  20228,
  20229,
  20230,
  20231,
  20232,
  20233,
  20234,
  20235,
  20236,
  20237,
  20238,
  20239,
  20240,
  20241,
  20242,
  20243,
  20244,
  20245,
  20246,
  20247,
  20248,
  20249,
  20250,
  20251,
  20252,
  20253,
  20254,
  20255,
  20256,
  20257,
  20258,
  20259,
  20260,
  20261,
  20262,
  20263,
  20264,
  20265,
  20266,
  20267,
  20268,
  20269,
  20270,
  20271,
  20272,
  20273,
  20274,
  20275,
  20276,
  20277,
  20278,
  20279,
  20280,
  20281,
  20282,
  20283,
  20284,
  20285,
  20286,
  20287,
  20288,
  20289,
  20290,
  20291,
  20292,
  20293,
  20294,
  20295,
  20296,
  20297,
  20298,
  20299,
  20300,
  20301,
  20302,
  20303,
  20304,
  20305,
  20306,
  20307,
  20308,
  20309,
  20310,
  20311,
  20312,
  20313,
  20314,
  20315,
  20316,
  20317,
  20318,
  20319,
  20320,
  20321,
  20322,
  20323,
  20324,
  20325,
  20326,
  20327,
  20328,
  20329,
  20330,
  20331,
  20332,
  20333,
  20334,
  20335,
  20336,
  20337,
  20338,
  20339,
  20340,
  20341,
  20342,
  20343,
  20344,
  20345,
  20346,
  20347,
  20348,
  20349,
  20350,
  20351,
  20352,
  20353,
  20354,
  20355,
  20356,
  20357,
  20358,
  20359,
  20360,
  20361,
  20362,
  20363,
  20364,
  20365,
  20366,
  20367,
  20368,
  20369,
  20370,
  20371,
  20372,
  20373,
  20374,
  20375,
  20376,
  20377,
  20378,
  20379,
  20380,
  20381,
  20382,
  20383,
  20384,
  20385,
  20386,
  20387,
  20388,
  20389,
  20390,
  20391,
  20392,
  20393,
  20394,
  20395,
  20396,
  20397,
  20398,
  20399,
  20400,
  20401,
  20402,
  20403,
  20404,
  20405,
  20406,
  20407,
  20408,
  20409,
  20410,
  20411,
  20412,
  20413,
  20414,
  20415,
  20416,
  20417,
  20418,
  20419,
  20420,
  20421,
  20422,
  20423,
  20424,
  20425,
  20426,
  20427,
  20428,
  20429,
  20430,
  20431,
  20432,
  20433,
  20434,
  20435,
  20436,
  20437,
  20438,
  20439,
  20440,
  20441,
  20442,
  20443,
  20444,
  20445,
  20446,
  20447,
  20448,
  20449,
  20450,
  20451,
  20452,
  20453,
  20454,
  20455,
  20456,
  20457,
  20458,
  20459,
  20460,
  20461,
  20462,
  20463,
  20464,
  20465,
  20466,
  20467,
  20468,
  20469,
  20470,
  20471,
  20472,
  20473,
  20474,
  20475,
  20476,
  20477,
  20478,
  20479,
  20480,
  20481,
  20482,
  20483,
  20484,
  20485,
  20486,
  20487,
  20488,
  20489,
  20490,
  20491,
  20492,
  20493,
  20494,
  20495,
  20496,
  20497,
  20498,
  20499,
  20500,
  20501,
  20502,
  20503,
  20504,
  20505,
  20506,
  20507,
  20508,
  20509,
  20510,
  20511,
  20512,
  20513,
  20514,
  20515,
  20516,
  20517,
  20518,
  20519,
  20520,
  20521,
  20522,
  20523,
  20524,
  20525,
  20526,
  20527,
  20528,
  20529,
  20530,
  20531,
  20532,
  20533,
  20534,
  20535,
  20536,
  20537,
  20538,
  20539,
  20540,
  20541,
  20542,
  20543,
  20544,
  20545,
  20546,
  20547,
  20548]}
coverage = flox.xarray.xarray_reduce(
    sample_glacier_raster.cov,
    sample_glacier_raster.satellite_img1.compute(),
    sample_glacier_raster.mid_date,
    func="mean",
    fill_value=0,
)
/Users/emarshall/miniconda3/envs/itslivetools_env/lib/python3.10/site-packages/flox/aggregate_flox.py:105: RuntimeWarning: invalid value encountered in true_divide
  out /= nanlen(group_idx, array, size=size, axis=axis, fill_value=0)
yr_season_mean_v = flox.xarray.xarray_reduce(
    sample_glacier_raster.v,
    sample_glacier_raster.mid_date.dt.year,
    sample_glacier_raster.mid_date.dt.season,
    func = 'mean',
)
yr_season_mean.compute()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [51], in <cell line: 1>()
----> 1 yr_season_mean.compute()

NameError: name 'yr_season_mean' is not defined
yr_season_mean
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [52], in <cell line: 1>()
----> 1 yr_season_mean

NameError: name 'yr_season_mean' is not defined
fg_yr = yr_season_mean.plot(
        col='season',
        row = 'year',)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [53], in <cell line: 1>()
----> 1 fg_yr = yr_season_mean.plot(
      2         col='season',
      3         row = 'year',)

NameError: name 'yr_season_mean' is not defined

Seasonal mean velocities with groupby

#first define the function we'll apply to each group
def middate_mean(a):
    return a.mean(dim='mid_date')
seasons_gb = sample_glacier_raster.groupby(sample_glacier_raster.mid_date.dt.season).map(middate_mean)
#add attrs to gb object
seasons_gb.attrs = sample_glacier_raster.attrs #why didn't that work?
seasons_gb
<xarray.Dataset>
Dimensions:               (y: 54, x: 100, season: 4)
Coordinates:
    mapping               int64 0
  * y                     (y) float64 3.188e+06 3.188e+06 ... 3.182e+06
  * x                     (x) float64 2.36e+05 2.361e+05 ... 2.477e+05 2.479e+05
  * season                (season) object 'DJF' 'JJA' 'MAM' 'SON'
Data variables: (12/43)
    chip_size_height      (season, y, x) float32 dask.array<chunksize=(1, 20, 21), meta=np.ndarray>
    chip_size_width       (season, y, x) float32 dask.array<chunksize=(1, 20, 21), meta=np.ndarray>
    date_dt               (season) timedelta64[ns] dask.array<chunksize=(1,), meta=np.ndarray>
    interp_mask           (season, y, x) float32 dask.array<chunksize=(1, 20, 21), meta=np.ndarray>
    roi_valid_percentage  (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    stable_count_mask     (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    ...                    ...
    vy_error_modeled      (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_error_slow         (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_stable_shift       (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_stable_shift_mask  (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    vy_stable_shift_slow  (season) float64 dask.array<chunksize=(1,), meta=np.ndarray>
    cov                   (season) float64 0.376 0.3944 0.3841 0.3683
Attributes: (12/18)
    GDAL_AREA_OR_POINT:         Area
    author:                     ITS_LIVE, a NASA MEaSUREs project (its-live.j...
    autoRIFT_parameter_file:    http://its-live-data.s3.amazonaws.com/autorif...
    datacube_software_version:  1.0
    date_created:               09-Jun-2022 04:14:40
    date_updated:               09-Jun-2022 04:14:40
    ...                         ...
    s3:                         s3://its-live-data/datacubes/v02/N20E080/ITS_...
    skipped_granules:           s3://its-live-data/datacubes/v02/N20E080/ITS_...
    time_standard_img1:         UTC
    time_standard_img2:         UTC
    title:                      ITS_LIVE datacube of image_pair velocities
    url:                        https://its-live-data.s3.amazonaws.com/datacu...
fg = seasons_gb.v.plot(
    col='season',
    vmax = 150
);
_images/ind_glacier_data_inspection_analysis_87_0.png